Connection Pooling and Late Binding to Reduce Roundtrip Latency
A common concern in routing is determining how to obtain minimal roundtrip latency to a remote server. To control the number of concurrently established connections and avoid setup costs, connections are often pooled and maintained by net/http connection: keep-alive. When using Go programming language, a net/http request initiates a race between the goroutine that dials a connection to the remote host and the one that tries to retrieve an idle connection from the pool. Whichever connection is established more quickly wins and the other is cancelled.
In CloudFlare’s Railgun, their dynamic content optimizer, these idle connection pools are maintained for as long as it is optimal in order to serve any incoming request as quickly as possible. This is referred to as late binding. To reduce roundtrip latency for pooled non-HTTP connections, Sync.Pool can also be used as long as the connection manager is capable of clearing bad connections.
Google Cloud Audit Logs Now Available in Beta
Audit logs for Administrative Access and Data Access to track administrative actions are now available in beta for Google’s Cloud in App Engine and BigQuery. The logs are available in Google Cloud Logging, and logs can be viewed individually in Logs Viewer, exported to Google Cloud Storage, streamed to BigQuery for analysis, or published to Google Cloud Pub/Sub for processing via Google Cloud Dataflow.
Admin Activity audit logs contain data for all actions that change the configuration or metadata for an application, service or resource. These changes may consist of adding a new user or launching a new version of the app. Admin Activity audit logs can be viewed in the Google Cloud Platform Console along with the Data Access audit logs, which can only be generated from BigQuery (while the log platforms are in beta). Data Access audit logs contain information on API calls that either read the configuration or metadata of an app, service, or resource, or that create, modify or read user-provided data managed by a service.
Azure Resource Manager (ARM) Template to Automate Creating WordPress Applications
A free trial of the hybrid Azure Resource Manager (ARM) template that has been created to automate the creation of WordPress applications that run on Azure App Service Web Apps is now available. These apps must also be backed by a MySQL database cluster and run on Azure Virtual Machines. Once the application is launched in WordPress, the MySQL server can be accessed with the public DNs name and the master server can be accessed at port 3306, and the slave server accessed at 3307. If your server meets the criteria, the database can be accessed using the MySQL command line, MySQL workbench, and the VMs can be accessed through SSH (ports 64001 and 64002). You can also launch a MySQL health probe in the VMs or issues an HTTP query (200 indicates a health MySQL).
Troubleshooting Routing Issues with Traceroute and BGP Routing Tables
Border Gateway Protocol (BGP) handles today’s Internet routing through the complicated network of autonomous systems (ASs, or individual networks), each with a unique autonomous system number (ASN) decided by a Regional Internet Registry (RIR), which also handles allocation of IP addresses. Autonomous systems establish BGP peering sessions to other to exchanges routing information, or a TCP, which rides across a link such as a 10 Gigabit Ethernet interface between the routers. Autonomous systems can either transit information through direct connections (i.e. Eithernet links) and paying an upstream network (transit provider) to accept and forward its traffic, or through peering, in which autonomous systems connect and agree to exchange traffic with each other and any of their customers via Ethernet connections (private peering) or via Internet Exchange switches (IX’s).
Networks will code their routing policy to prefer the best BGP path in which they prefer their own internal routes and routes learned from customers. Following these, networks will typically prefer peering routes, since they are usually free and often offer quick connections, and finally will resort to paid transit links. Routing policies can also specify which prefixes, ASN origins, AS-Paths, or other BGP attributes that are preferred, and manipulation of this routing policy is called BGP traffic-engineering. Altering traffic’s route to exit the network as it is entering it can be more difficult that altering outgoing traffic. Additionally, influencing routing in networks upstream from those adjacent to the original network requires the use of the Communities attribute. Traffic engineering can be beneficial in both minimizing the costs incurred by a pathway and in improving performance by decreasing latency. AWS Direct Connect allows network to directly connect to the network infrastructure so that there are no Internet routing or capacity issues.
Another way to determine what is causing higher than desired latency is through the use of traceroutes. Traceroutes will send packets to a given destination and the upstream device will generate an ICMP TTL Exceeded message sent back to the source to inform the router of the first and subsequent hops on the network. One should always remember to separate the outbound and inbound path of the return packets, however, as Internet routing often follows asymmetric paths. Traceroutes should also be coded to interact properly with HTTP or HTTPS protocols, some of the return messages may be filtered out, and return packet data should always be interpreted with skepticism. Round-trip-time (RTT) for each hop, however, can be very useful in determining where congestion is occurring. Should packets be filtered out, emitting a ping to each hop can also be a useful way to determine RTT. When troubleshooting routing issues, both BGP paths and tables and traceroutes provide vital information in determining where latency issues are occurring.
Google Issues Re-Imagination of Its Course Builder
Google has released Course Builder v1.10 with the goal of improving ease of use, making it embeddable, and increasing the types of content to which it is applicable. All of Course Builder’s materials will now be located in Google Open Online Education, and new modules can be developed in the Builder. Embeddable assessments can also be added and used on any site. “Guides” have been added to allow non-linear consumption of content on the course site and guide the student through different steps that may include a tutorial video as well as docs pages. This updated version also has enhanced performance features to improve the look and feel of the site for mobile users.