SRS Technical Update...SRS Web User Interface 30 • Full turnkey solution (a web server, a DB, an...
Transcript of SRS Technical Update...SRS Web User Interface 30 • Full turnkey solution (a web server, a DB, an...
SRS Technical UpdateDave Baker & Taras Klish, .nz Conference 2017
•NZRS Operations
•SRS Software Development
NZRS OperationsA brief journey
Technical Update #dotnz17
• Monthly development cycle
• Releases monthly / bi-monthly
• Releases included all the system configuration much of which was hard-coded.
In the beginning
3
Technical Update #dotnz17
• Monthly development cycle
• Releases monthly / bi-monthly
• System configuration pulled out but still many hard-coded config values
• Application / configuration releases at the same time
In-sourced + 1 day
4
Technical Update #dotnz17
• Monthly (application) development cycle
• Monthly / bi-monthly releases
• Almost all application config parameterised
• System config releases done hourly/daily/on-demand
Today
5
Technical Update #dotnz17
• The SRS application is quite stable, a monthly development cycle suits
• Code-base only needs small amounts of maintenance
• New features need much testing
• Slow and steady wins the ccTLD race
but.. why?
6
Technical Update #dotnz17
• System changes need to be fast; security updates, user management + auditing
• The same playbook deploys integration and production. Shared code is good
• Previously, hard-coded values meant testing was difficult, now running 20 separate clusters is no problem
• Parameters mean we can spin up a full SRS cluster, on a laptop, in 5 minutes finely tuned for any test
so why change ?
7
Technical Update #dotnz17
• Nothing special, just do it• Plan for flexibility, run-time parameters are good• Safe defaults• .nz as the default ccTLD
• Tools• Jenkins + vSphere for regression / integration• Ansible for configuration management• Vagrant for local machine testing
so, how ?
8
Technical Update #dotnz17
What next ?• 100% automation • 99% is good, but we can do better
• Automated ansible testing • configuration assertion / unit testing
• Release all the things • So you can test too
9
Technical Update #dotnz17
• Whoisd
• SRS Web User Interface
• Future development
SRS Software Development
10
Technical Update #dotnz17
Current architecture
Whoisd
11
whoisd
Backend
Frontend
Master DB
SRS internalas a special
registrarSRS WhoisTransaction
7-12 SQL queries
TCP
• ACL• Rate limiting
• Validation• Conversion to SRS
protocol
300 - 500 ms
Technical Update #dotnz17
Current architecture
Whoisd
12
whoisd
Backend
Frontend
Master DB
SRS JSONas a special
registrarSRS WhoisTransaction
7-12 SQL queries
TCP
• ACL• Rate limiting
• Validation• Conversion to SRS
protocol
200 - 500 ms300 - 500 ms
Technical Update #dotnz17
New architecture
Whoisd
13
HA ProxyTCP
ACLRate Limiting
Technical Update #dotnz17
New architecture
Whoisd
14
HA Proxy
whoisd-ng
TCP
TCP
Validation
ACLRate Limiting
Technical Update #dotnz17
New architecture
Whoisd
15
HA Proxy
whoisd-ng
Slave DB
TCP
Slave DB
TCP
Validation
Postgres protocol
PL/pgSQLfunction…
ACLRate Limiting
Technical Update #dotnz17
New architecture
Whoisd
16
HA Proxy
whoisd-ng
PgBouncer
Slave DB
TCP
Slave DB
TCP
Validation
Postgres protocol
PL/pgSQLfunction…
ACLRate Limiting
Technical Update #dotnz17
New architecture
Whoisd
17
HA Proxy
whoisd-ng
PgBouncer
Slave DB
TCP
Slave DB
TCPDB Load Balancing
Failover
Validation
Postgres protocol
PL/pgSQLfunction…
Postgres protocol
ACLRate Limiting
Technical Update #dotnz17
New architecture
Whoisd
18
HA Proxy
whoisd-ng
PgBouncer
Slave DB
TCP
Slave DB
TCPDB Load Balancing
Failover
Validation
Postgres protocol
PL/pgSQLfunction…
Postgres protocol
ACLRate Limiting
10-50 ms
Technical Update #dotnz17
New architecture
Whoisd
19
HA Proxy
whoisd-ng
PgBouncer
Slave DB Slave DB…
10-50 msHA Proxy
whoisd-ng
PgBouncer
Technical Update #dotnz17
New architecture
Whoisd
20
Slave DB
10-50 msHA Proxy
whoisd-ng
PgBouncer
Current status:
• Last stage of testing• Performance fine tuning• Scheduled deployment as a partof SRS Release 7.9 (28/05/2017)
Will be available on github
Technical Update #dotnz17
• Standalone application• Generates and submits SRS XML requests• Batch transactions• Advanced user management and audit• Helper tools• API• EPP support (future)
SRS Web User Interface
21
22
SRS Transactions
HelperTools
Admin
SRS Web User Interface
23
PreviewXML
Technical Update #dotnz17
SRS Web User Interface
24
XMLRequest
SRS Web User Interface
25
XMLResponse
SRS Web User Interface
26
ParsedResults
SRS Web User Interface
27
EmailResults
SRS Web User Interface
28
Globalsettings
SRS Web User Interface
29
Fine tuneuser
permissions
Technical Update #dotnz17
SRS Web User Interface
30
• Full turnkey solution (a web server, a DB, an application)
• Not a part of SRS deployment cycle, so will be released independently
• Will be available on github as open source
• Will be available as an appliance
Technical Update #dotnz17
• New EPP extensions (new UDAI)
• RDAP
• EPP Server rewrite
• Internal communications improvements
Future SRS Development
31
Technical Update #dotnz17
Questions?
SRS Technical Update
32