SlideShare a Scribd company logo
Psst! Check this out:
Soon in this
room:
Automating
Infrastructure
with ZS6.2
WebAPI
Automating your PHP
Infrastructure with
Zend Server API
What's new in WebAPI 1.6 on Zend Server 6.2
Is this the right room?
• What is Zend Server 6?
• What is the Zend Server WebAPI?
• Why does Zend Server have a WebAPI?
• How is this related to the Cloud?
Excuse me, is this the right room for an
argument?
I told you once
No you didn’t
Yes I did
No you did not
Is this a five minutes argument? Or the full
half an hour?
Still not sure …
In this very room we are going to answer the
following:
● Why we should use the WebAPI
● How we use the WebAPI
● What we can do with the WebAPI
And also:
● Just how big is “Extensive”?
● What is my favorite color?
● Is there a red ElePHPant hiding in the room?
• API centric architecture
• A secure way to access all of Zend Server's
functionality
• A uniform way to control a distributed,
scaling, elastic environment
• Securely retrieve data and state information
from Zend server
• Single-step actions to use the major features
of Zend server
Yes, but what does WebAPI ...
do?
In more techno-speak
• RESTfull gateway
• Crypto-Signatures based authentication
• JSON or XML output
• Backwards compatibility, versioning
• Smart Version Negotiation
• Uniform error
handling
ZS6 WebAPI
In a nutshell
Brief tour of the ZS WebAPI
WebAPI Authentication
• WebAPI Keys
o Est. WebAPI 1.0 (Zend Server 5.1)
o Hash of Date, Host, Uri, User agent and secret key
o X-ZendServer-Signature header
o Server side comparison
Signature
Generator
Date Host URI User Agent
Generate key (sha256) Signature hash
Secret key
Request headers
json 1.2
1.1
1.0
• Methods
o Read/Write differentiation
o Exceptions to the rule
• Accept header
o Type part
o Output format
o Version
Accept: application/vnd.zend.serverapi+xml;version=1.6
WebAPI Request structure
WebAPI output
• XML conventions
o <zendServerAPIResponsexmlns="http://...
/server/api/1.6">
o <requestData>, <responseData>
o CDATA'd information
• JSON conventions
o Direct conversion from xml to json
• Error output
o <errorData><errorCode><errorMessage>
• Dates
o Timestamp
WebAPI behavior guidelines
● Immediate
response
● Atomic action
● Stateless
● Disjoint parameters
● Cluster agnostic
● Return meaningful information
● Return complete information
Demo: Script review, Restart ZS, UI visualization
ZS6 WebAPI actions
Capabilities and what to expect
WebAPI actions: Server & Cluster
• Add/remove servers, Enable/disable servers
o Asynchronous action
o Parallel execution, to a point
• Cluster monitoring
• Restart PHP (Selective, force)
• Restart/Reload individual daemons
• Server bootstrap
Available in Zend cli-tools
Spotlight: Server & Cluster actions
● bootstrapSingleServer
○ Passwords, initial webapi key
○ Accessible
● serverAddToCluster vs. clusterAddServer
○ Server-centric vs. Cluster-centric
○ Different parameters
○ Demo soon
● daemonProbe
● tasksComplete
WebAPI actions: Configuration
• Turn Extensions on/off
o Still requires a restart
o Asynchronous operations
• Validate and store directives' values
• Export/Import configuration blueprint
• Reset configuration
• Handle configuration mismatches
WebAPI actions: Monitor
• List and filter issues and events
o Predefined and custom filters
o Modified filters
• Issue details with paginated eventsGroup
• Export events to studio
• Delete events by id or by filter
• Manage Monitor Rules
• Export/Import monitor rules
o Global, per application
o For deployment
WebAPI actions: Deployment
• Single-action application deployment
• Define application
• Manage applications
o Redeploy
o Single-action Update
o Rollback
• Manage code libraries
• Cluster distribution management
WebAPI actions: Vhosts
● Vhosts management for webservers
● Supports Apache and nginx on all operating
systems
● Supports SSL vhosts for secured applications
● Cluster distributed
● Cluster distribution management
WebAPI actions, many more!
• Code-tracing
• JobQueue
• Page-cache
• Audit trail
• Statistics
• Studio integration
• Filters' management
• and much more...
A word about
documentation
“Extensive”
6 WebAPI versions
16 modules
50 data type elements
68 error codes
125 webapi actions
with examples, etc
Documentation bad?
Tell us what you think about our docs:
@ZendDocs, @ZendSui
zs-feedback@zend.com
ww-support@zend.com
Particularly if you found
a mistake!
ZS6 WebAPI
Basic Use Cases
Your wish is our WebAPI
Use cases: Bootstrap a
server
WebAPI action: bootstrapSingleServer
Programmatically make a server available after
its initial installation
What you'll need:
• A newly installed server
• Willing to accept EULA - ah, yeah
• License key, order number
• Administrator password
This action explicitly does not require a webapi key to be
used. May not be used once the server is bootstrapped.
Bootstrap a server, BtS
• License is set
• User "admin" is created
• User "developer" may be created
• A launch profile is selected
o zend_monitor.developer_mode = 1|0
• Configuration snapshot
• Add an "admin" webapi key
• Audit entry under user "Unknown"
Bootstrap a server, output
<responseData>
<bootstrap>
<success>true</success>
<apiKey>
<id>5</id>
<username>admin</username>
<name><![CDATA[MyKey]]></name>
<hash><![CDATA[f2a18541...e949ef]]></hash>
<creationTime>...</creationTime>
</apiKey>
</bootstrap>
</responseData>
Demo: Bootstrap a single server
Use cases: Join a cluster
WebAPI action: serverAddToCluster
Programmatically join a new or existing cluster
What you'll need:
• A bootstrapped server
• Server details
• Database - empty or with schema
• Database credentials
o For a new cluster, a root-ish user
o For an existing one, the zend user credentials
Server details are used internally to communicate with
Join a cluster, BtS
• Asynchronous action, Accepted 202
• Sets db credentials in zend_database.ini
• Bootstrap mysql schema using root-ish user
• Create a zend user, grant permissions
o New credentials are returned in action output
• Copy/Apply blueprint
• Connect Session clustering
• Restart server and reload daemons
Join a cluster, output
<responseData>
<serverInfo>
<id>25</id>
<name>ubuntu1204-b</name>
<address>10.9.183.84</address>
<status>restarting</status>
<messageList />
</serverInfo>
</responseData>
Demo: Join a cluster
The red ElePHPant in the room!
Story time: ZS6 and the
Cluster Manager
Mythological creatures
Add a server to a cluster,
ZS5 CM style
WebAPI action: clusterAddServer
Programmatically add a remote Zend Server to
an existing cluster
What you'll need:
• A connected Zend Server
• A newly installed server
• Server details
• Database with schema
Add a server, ZS5 CM style,
BtS
• Asynchronous action, Accepted 202
• Uses local db credentials
• Nested WebAPI action, calls
serverAddToCluster on the remote server
o Any problems with this?
Add a server, ZS5 CM style,
output
<responseData>
<serverInfo>
<id>25</id>
<name>ubuntu1204-b</name>
<address>10.9.183.84</address>
<status>restarting</status>
<messageList />
</serverInfo>
</responseData>
Back to our regular
programme
More WebAPI stuff
Use cases: Change directive values
WebAPI action: configurationStoreDirectives
Programmatically change directives' values
What you'll need:
• A bootstrapped Zend Server
• A list of directive names and values to
change
You may change Zend daemons' directives
Change directive values, BtS
• Asynchronous call, Accepted 202
• Validation is performed for each directive
during storage.
• Restart has to be explicitly called separately
o DaemonProbe
o Selective restart
Demo: Change directive values
WebAPI based application
How would you build a custom developer dashboard
Requirements
● We do not allow a developer access to Zend
Server at all
● Developers may access a dashboard that
aggregates information from ZS
● Developers should see
○ Deployment Audit Entries
○ Monitor issue entries
○ Codetracing archives related to new issue entries
○ Deployed application details
Requirement: Audit trail
Display 10 entries of deployment-only Audit
trail events and their details
● auditGetList - retrieve audit entries
● filters[auditGroups][0]=
AUDIT_GROUP_DEPLOYMENT
Response:
"responseData":{"auditMessages":[{...
"auditTypeTranslated":"Application deployed",
"baseUrl":"http://myApplication/",
"creationTime":"2013-10-08T17:19:03+03:00",
…
Requirement: Latest Issues
Display 10 entries of “Error Events” in user
applications and scripts
● monitorGetIssuesByPredefinedFilter
● Filter: filterId=Errors%20Issues
Response:
"responseData":{"issues":[{
"eventType":"0",
"count":"1",
"lastOccurance":"2013-10-08T19:58:32+03:00",
“codeTracingEventGroupId”:”16”,
…
Requirement: Codetracing
Retrieve codetracing archive relevant to the
issues retrieved by
monitorGetIssues...Filter
● codetracingDownloadTraceFile
● eventGroupId=<issue.codeTracingEventGroupId>
Response: AMF file with codetracing
information for use in Zend Studio
(Import/Zend/Zend Server Event File)
Requirement: Apps details
Display details about deployed applications
● applicationGetStatus - retrieve app entries
Response:
"responseData":{"applicationsList":[{
"baseUrl":"http://mine-app/",
"userAppName":"MyApp",
"status":"deployed",
"healthCheck":"ok",
…
Dashboard architecture
What you'll need
• A webserver … uh ...
• Deploy the developer dashboard application
How is it used?
• Developer goes to developer dashboard
• Dashboard retrieves data from webapi
• Dashboard displays the retrieved
information in a formatted way
• Codetracing amf file retrieval from the
dashboard acts as a proxy for the webapi call
Thank you!
Ideas, feedback, advice: yonni.m@zend.com, @zendsui
</responseData>
My favorite color: Blue
Comments & feedback
in joind.in/9345

More Related Content

What's hot

ASP.NET vNext ANUG 20140817
ASP.NET vNext ANUG 20140817ASP.NET vNext ANUG 20140817
ASP.NET vNext ANUG 20140817
Christian Horsdal
 
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
Puppet
 
PHP on Windows 2008
PHP on Windows 2008PHP on Windows 2008
PHP on Windows 2008
jorke
 
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSDeveloping Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Shekhar Gulati
 
Best Practices for WordPress
Best Practices for WordPressBest Practices for WordPress
Best Practices for WordPress
Taylor Lovett
 
Performance Metrics in a Day with Selenium
Performance Metrics in a Day with SeleniumPerformance Metrics in a Day with Selenium
Performance Metrics in a Day with Selenium
Mark Watson
 
WordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngineWordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngine
NGINX, Inc.
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
ColdFusionConference
 
Spring One DC 2012: Building For Performance with Spring Integration & Spring...
Spring One DC 2012: Building For Performance with Spring Integration & Spring...Spring One DC 2012: Building For Performance with Spring Integration & Spring...
Spring One DC 2012: Building For Performance with Spring Integration & Spring...
andrewelmore
 
Vladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning Talk
Vladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning TalkVladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning Talk
Vladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning Talk
Zabbix
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Josh Padnick
 
PowerShell: Through the SharePoint Looking Glass
PowerShell: Through the SharePoint Looking GlassPowerShell: Through the SharePoint Looking Glass
PowerShell: Through the SharePoint Looking Glass
Brian Caauwe
 
Cfml features modern_coding
Cfml features modern_codingCfml features modern_coding
Cfml features modern_coding
ColdFusionConference
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript Framework
All Things Open
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]
Ryan Cuprak
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Matt Raible
 
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLHigh Availability Perl DBI + MySQL
High Availability Perl DBI + MySQL
Steve Purkis
 
The Play Framework at LinkedIn
The Play Framework at LinkedInThe Play Framework at LinkedIn
The Play Framework at LinkedIn
Yevgeniy Brikman
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Julian Robichaux
 

What's hot (19)

ASP.NET vNext ANUG 20140817
ASP.NET vNext ANUG 20140817ASP.NET vNext ANUG 20140817
ASP.NET vNext ANUG 20140817
 
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
 
PHP on Windows 2008
PHP on Windows 2008PHP on Windows 2008
PHP on Windows 2008
 
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSDeveloping Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJS
 
Best Practices for WordPress
Best Practices for WordPressBest Practices for WordPress
Best Practices for WordPress
 
Performance Metrics in a Day with Selenium
Performance Metrics in a Day with SeleniumPerformance Metrics in a Day with Selenium
Performance Metrics in a Day with Selenium
 
WordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngineWordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngine
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
 
Spring One DC 2012: Building For Performance with Spring Integration & Spring...
Spring One DC 2012: Building For Performance with Spring Integration & Spring...Spring One DC 2012: Building For Performance with Spring Integration & Spring...
Spring One DC 2012: Building For Performance with Spring Integration & Spring...
 
Vladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning Talk
Vladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning TalkVladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning Talk
Vladimir Ulogov - Large Scale Simulation | ZabConf2016 Lightning Talk
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
 
PowerShell: Through the SharePoint Looking Glass
PowerShell: Through the SharePoint Looking GlassPowerShell: Through the SharePoint Looking Glass
PowerShell: Through the SharePoint Looking Glass
 
Cfml features modern_coding
Cfml features modern_codingCfml features modern_coding
Cfml features modern_coding
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript Framework
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015
 
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLHigh Availability Perl DBI + MySQL
High Availability Perl DBI + MySQL
 
The Play Framework at LinkedIn
The Play Framework at LinkedInThe Play Framework at LinkedIn
The Play Framework at LinkedIn
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
 

Similar to Automating your php infrastructure with the zend server api

Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
Marko Heijnen
 
Hanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvcHanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvc
denemedeniz
 
Way to cloud
Way to cloudWay to cloud
Way to cloud
Andrew Yongjoon Kong
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf
 
Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10
Derek Jacoby
 
Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014
Justin Ison
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption   Lessons Learned and Advanced TroubleshootingSharePoint 2016 Platform Adoption   Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
John Calvert
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
Taylor Lovett
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
Chef
 
SharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Adoption - Lessons Learned and Advanced TroubleshootingSharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
John Calvert
 
Tutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web apiTutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web api
Yonni Mendes
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
Achieve Internet
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
Achieve Internet
 
Configuration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech TalksConfiguration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech Talks
Amazon Web Services
 
How to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud SolutionsHow to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud Solutions
Noam Zakai
 
Improving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with MemcachedImproving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with Memcached
Acquia
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
knowbigdata
 
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil DibowitzAtmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
PROIDEA
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
Harry Zheng
 
CakePHP REST Plugin
CakePHP REST PluginCakePHP REST Plugin
CakePHP REST Plugin
Kevin van Zonneveld
 

Similar to Automating your php infrastructure with the zend server api (20)

Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
 
Hanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvcHanselman lipton asp_connections_ams304_mvc
Hanselman lipton asp_connections_ams304_mvc
 
Way to cloud
Way to cloudWay to cloud
Way to cloud
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10
 
Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption   Lessons Learned and Advanced TroubleshootingSharePoint 2016 Platform Adoption   Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
 
SharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Adoption - Lessons Learned and Advanced TroubleshootingSharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
 
Tutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web apiTutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web api
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
 
Configuration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech TalksConfiguration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech Talks
 
How to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud SolutionsHow to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud Solutions
 
Improving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with MemcachedImproving Website Performance and Scalability with Memcached
Improving Website Performance and Scalability with Memcached
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil DibowitzAtmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
 
CakePHP REST Plugin
CakePHP REST PluginCakePHP REST Plugin
CakePHP REST Plugin
 

More from Yonni Mendes

Debriefing and post-mortems
Debriefing and post-mortemsDebriefing and post-mortems
Debriefing and post-mortems
Yonni Mendes
 
Efforts to tasks
Efforts to tasksEfforts to tasks
Efforts to tasks
Yonni Mendes
 
Estimations and confidence
Estimations and confidenceEstimations and confidence
Estimations and confidence
Yonni Mendes
 
When to refactor
When to refactorWhen to refactor
When to refactor
Yonni Mendes
 
Agile & What I know about it
Agile & What I know about itAgile & What I know about it
Agile & What I know about it
Yonni Mendes
 
Apigility & Restfull APIs
Apigility & Restfull APIsApigility & Restfull APIs
Apigility & Restfull APIs
Yonni Mendes
 
Zend server 6 using zf2, 2013 webinar
Zend server 6 using zf2, 2013 webinarZend server 6 using zf2, 2013 webinar
Zend server 6 using zf2, 2013 webinar
Yonni Mendes
 
Zend server 6 compliance
Zend server 6  complianceZend server 6  compliance
Zend server 6 compliance
Yonni Mendes
 

More from Yonni Mendes (8)

Debriefing and post-mortems
Debriefing and post-mortemsDebriefing and post-mortems
Debriefing and post-mortems
 
Efforts to tasks
Efforts to tasksEfforts to tasks
Efforts to tasks
 
Estimations and confidence
Estimations and confidenceEstimations and confidence
Estimations and confidence
 
When to refactor
When to refactorWhen to refactor
When to refactor
 
Agile & What I know about it
Agile & What I know about itAgile & What I know about it
Agile & What I know about it
 
Apigility & Restfull APIs
Apigility & Restfull APIsApigility & Restfull APIs
Apigility & Restfull APIs
 
Zend server 6 using zf2, 2013 webinar
Zend server 6 using zf2, 2013 webinarZend server 6 using zf2, 2013 webinar
Zend server 6 using zf2, 2013 webinar
 
Zend server 6 compliance
Zend server 6  complianceZend server 6  compliance
Zend server 6 compliance
 

Recently uploaded

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 

Recently uploaded (20)

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 

Automating your php infrastructure with the zend server api

  • 1. Psst! Check this out: Soon in this room: Automating Infrastructure with ZS6.2 WebAPI
  • 2. Automating your PHP Infrastructure with Zend Server API What's new in WebAPI 1.6 on Zend Server 6.2
  • 3. Is this the right room? • What is Zend Server 6? • What is the Zend Server WebAPI? • Why does Zend Server have a WebAPI? • How is this related to the Cloud? Excuse me, is this the right room for an argument? I told you once No you didn’t Yes I did No you did not Is this a five minutes argument? Or the full half an hour?
  • 4. Still not sure … In this very room we are going to answer the following: ● Why we should use the WebAPI ● How we use the WebAPI ● What we can do with the WebAPI And also: ● Just how big is “Extensive”? ● What is my favorite color? ● Is there a red ElePHPant hiding in the room?
  • 5. • API centric architecture • A secure way to access all of Zend Server's functionality • A uniform way to control a distributed, scaling, elastic environment • Securely retrieve data and state information from Zend server • Single-step actions to use the major features of Zend server Yes, but what does WebAPI ... do?
  • 6. In more techno-speak • RESTfull gateway • Crypto-Signatures based authentication • JSON or XML output • Backwards compatibility, versioning • Smart Version Negotiation • Uniform error handling
  • 7. ZS6 WebAPI In a nutshell Brief tour of the ZS WebAPI
  • 8. WebAPI Authentication • WebAPI Keys o Est. WebAPI 1.0 (Zend Server 5.1) o Hash of Date, Host, Uri, User agent and secret key o X-ZendServer-Signature header o Server side comparison Signature Generator Date Host URI User Agent Generate key (sha256) Signature hash Secret key Request headers
  • 9. json 1.2 1.1 1.0 • Methods o Read/Write differentiation o Exceptions to the rule • Accept header o Type part o Output format o Version Accept: application/vnd.zend.serverapi+xml;version=1.6 WebAPI Request structure
  • 10. WebAPI output • XML conventions o <zendServerAPIResponsexmlns="http://... /server/api/1.6"> o <requestData>, <responseData> o CDATA'd information • JSON conventions o Direct conversion from xml to json • Error output o <errorData><errorCode><errorMessage> • Dates o Timestamp
  • 11. WebAPI behavior guidelines ● Immediate response ● Atomic action ● Stateless ● Disjoint parameters ● Cluster agnostic ● Return meaningful information ● Return complete information
  • 12. Demo: Script review, Restart ZS, UI visualization
  • 13. ZS6 WebAPI actions Capabilities and what to expect
  • 14. WebAPI actions: Server & Cluster • Add/remove servers, Enable/disable servers o Asynchronous action o Parallel execution, to a point • Cluster monitoring • Restart PHP (Selective, force) • Restart/Reload individual daemons • Server bootstrap Available in Zend cli-tools
  • 15. Spotlight: Server & Cluster actions ● bootstrapSingleServer ○ Passwords, initial webapi key ○ Accessible ● serverAddToCluster vs. clusterAddServer ○ Server-centric vs. Cluster-centric ○ Different parameters ○ Demo soon ● daemonProbe ● tasksComplete
  • 16. WebAPI actions: Configuration • Turn Extensions on/off o Still requires a restart o Asynchronous operations • Validate and store directives' values • Export/Import configuration blueprint • Reset configuration • Handle configuration mismatches
  • 17. WebAPI actions: Monitor • List and filter issues and events o Predefined and custom filters o Modified filters • Issue details with paginated eventsGroup • Export events to studio • Delete events by id or by filter • Manage Monitor Rules • Export/Import monitor rules o Global, per application o For deployment
  • 18. WebAPI actions: Deployment • Single-action application deployment • Define application • Manage applications o Redeploy o Single-action Update o Rollback • Manage code libraries • Cluster distribution management
  • 19. WebAPI actions: Vhosts ● Vhosts management for webservers ● Supports Apache and nginx on all operating systems ● Supports SSL vhosts for secured applications ● Cluster distributed ● Cluster distribution management
  • 20. WebAPI actions, many more! • Code-tracing • JobQueue • Page-cache • Audit trail • Statistics • Studio integration • Filters' management • and much more...
  • 21. A word about documentation “Extensive” 6 WebAPI versions 16 modules 50 data type elements 68 error codes 125 webapi actions with examples, etc
  • 22. Documentation bad? Tell us what you think about our docs: @ZendDocs, @ZendSui zs-feedback@zend.com ww-support@zend.com Particularly if you found a mistake!
  • 23. ZS6 WebAPI Basic Use Cases Your wish is our WebAPI
  • 24. Use cases: Bootstrap a server WebAPI action: bootstrapSingleServer Programmatically make a server available after its initial installation What you'll need: • A newly installed server • Willing to accept EULA - ah, yeah • License key, order number • Administrator password This action explicitly does not require a webapi key to be used. May not be used once the server is bootstrapped.
  • 25. Bootstrap a server, BtS • License is set • User "admin" is created • User "developer" may be created • A launch profile is selected o zend_monitor.developer_mode = 1|0 • Configuration snapshot • Add an "admin" webapi key • Audit entry under user "Unknown"
  • 26. Bootstrap a server, output <responseData> <bootstrap> <success>true</success> <apiKey> <id>5</id> <username>admin</username> <name><![CDATA[MyKey]]></name> <hash><![CDATA[f2a18541...e949ef]]></hash> <creationTime>...</creationTime> </apiKey> </bootstrap> </responseData>
  • 27. Demo: Bootstrap a single server
  • 28. Use cases: Join a cluster WebAPI action: serverAddToCluster Programmatically join a new or existing cluster What you'll need: • A bootstrapped server • Server details • Database - empty or with schema • Database credentials o For a new cluster, a root-ish user o For an existing one, the zend user credentials Server details are used internally to communicate with
  • 29. Join a cluster, BtS • Asynchronous action, Accepted 202 • Sets db credentials in zend_database.ini • Bootstrap mysql schema using root-ish user • Create a zend user, grant permissions o New credentials are returned in action output • Copy/Apply blueprint • Connect Session clustering • Restart server and reload daemons
  • 30. Join a cluster, output <responseData> <serverInfo> <id>25</id> <name>ubuntu1204-b</name> <address>10.9.183.84</address> <status>restarting</status> <messageList /> </serverInfo> </responseData>
  • 31. Demo: Join a cluster The red ElePHPant in the room!
  • 32. Story time: ZS6 and the Cluster Manager Mythological creatures
  • 33. Add a server to a cluster, ZS5 CM style WebAPI action: clusterAddServer Programmatically add a remote Zend Server to an existing cluster What you'll need: • A connected Zend Server • A newly installed server • Server details • Database with schema
  • 34. Add a server, ZS5 CM style, BtS • Asynchronous action, Accepted 202 • Uses local db credentials • Nested WebAPI action, calls serverAddToCluster on the remote server o Any problems with this?
  • 35. Add a server, ZS5 CM style, output <responseData> <serverInfo> <id>25</id> <name>ubuntu1204-b</name> <address>10.9.183.84</address> <status>restarting</status> <messageList /> </serverInfo> </responseData>
  • 36. Back to our regular programme More WebAPI stuff
  • 37. Use cases: Change directive values WebAPI action: configurationStoreDirectives Programmatically change directives' values What you'll need: • A bootstrapped Zend Server • A list of directive names and values to change You may change Zend daemons' directives
  • 38. Change directive values, BtS • Asynchronous call, Accepted 202 • Validation is performed for each directive during storage. • Restart has to be explicitly called separately o DaemonProbe o Selective restart
  • 40. WebAPI based application How would you build a custom developer dashboard
  • 41. Requirements ● We do not allow a developer access to Zend Server at all ● Developers may access a dashboard that aggregates information from ZS ● Developers should see ○ Deployment Audit Entries ○ Monitor issue entries ○ Codetracing archives related to new issue entries ○ Deployed application details
  • 42. Requirement: Audit trail Display 10 entries of deployment-only Audit trail events and their details ● auditGetList - retrieve audit entries ● filters[auditGroups][0]= AUDIT_GROUP_DEPLOYMENT Response: "responseData":{"auditMessages":[{... "auditTypeTranslated":"Application deployed", "baseUrl":"http://myApplication/", "creationTime":"2013-10-08T17:19:03+03:00", …
  • 43. Requirement: Latest Issues Display 10 entries of “Error Events” in user applications and scripts ● monitorGetIssuesByPredefinedFilter ● Filter: filterId=Errors%20Issues Response: "responseData":{"issues":[{ "eventType":"0", "count":"1", "lastOccurance":"2013-10-08T19:58:32+03:00", “codeTracingEventGroupId”:”16”, …
  • 44. Requirement: Codetracing Retrieve codetracing archive relevant to the issues retrieved by monitorGetIssues...Filter ● codetracingDownloadTraceFile ● eventGroupId=<issue.codeTracingEventGroupId> Response: AMF file with codetracing information for use in Zend Studio (Import/Zend/Zend Server Event File)
  • 45. Requirement: Apps details Display details about deployed applications ● applicationGetStatus - retrieve app entries Response: "responseData":{"applicationsList":[{ "baseUrl":"http://mine-app/", "userAppName":"MyApp", "status":"deployed", "healthCheck":"ok", …
  • 46. Dashboard architecture What you'll need • A webserver … uh ... • Deploy the developer dashboard application How is it used? • Developer goes to developer dashboard • Dashboard retrieves data from webapi • Dashboard displays the retrieved information in a formatted way • Codetracing amf file retrieval from the dashboard acts as a proxy for the webapi call
  • 47. Thank you! Ideas, feedback, advice: yonni.m@zend.com, @zendsui </responseData> My favorite color: Blue Comments & feedback in joind.in/9345