<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>load-balancing &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/load-balancing/</link>
	<description>Feed of posts on WordPress.com tagged "load-balancing"</description>
	<pubDate>Fri, 04 Dec 2009 08:52:07 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Almost have Dynamic Load Balancing Figured Out!]]></title>
<link>http://millerch.wordpress.com/2009/12/03/almost-have-dynamic-load-balancing-figured-out/</link>
<pubDate>Thu, 03 Dec 2009 16:44:14 +0000</pubDate>
<dc:creator>millerch</dc:creator>
<guid>http://millerch.wordpress.com/2009/12/03/almost-have-dynamic-load-balancing-figured-out/</guid>
<description><![CDATA[For those who know me in a professional fashion, you know I&#8217;m a big fan of Application Deliver]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>For those who know me in a professional fashion, you know I&#8217;m a big fan of <a href="http://en.wikipedia.org/wiki/Application_delivery_controller" target="_blank">Application Delivery</a>. For those who don&#8217;t know me in that arena, Application Delivery is essentially the process by which content/applications get from a <a href="http://en.wikipedia.org/wiki/Web_server" target="_blank">web server</a> to your client machine, be it a Desktop, Laptop, or phone. Since most web-sites require constant availability, many companies utilize <a href="http://en.wikipedia.org/wiki/Load_balancing_%28computing%29" target="_blank">load balancing hardware</a> that ensures requests are only sent to servers that can properly serve the content. This requires that load balancers are able to monitor which servers are up, active, and able to send that content. The reason most load balancers are now considered Application Delivery Controllers (ADCs) is because they now do much more than just load balancing. They can offload <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security" target="_blank">SSL (HTTPS)</a> functionality from servers, rewrite requests, and even assist in <a href="http://en.wikipedia.org/wiki/Data_compression" target="_blank">compressing </a>and <a href="http://en.wikipedia.org/wiki/Cache" target="_blank">caching </a>data to minimize the load on servers while speeding up delivery time.</p>
<p>There are many methods by which ADCs monitor server availability. Some simply <a href="http://en.wikipedia.org/wiki/Ping" target="_blank">ping </a>servers while others post actual data to ensure the resource responds correctly. Due to the company for which I work&#8217;s desire to add more intensive applications to our sites, simply load balancing requests in a round-robin fashion is no longer good enough. We now want our ADC to poll a server for information such as CPU Load, Requests Per Second, Virtual Memory Usage, and TCP Errors. By obtaining this information, the ADC will be able to send sessions to whichever system is best capable of serving them. Essentially, we want the ADC to have as much information as possible  when making its decisions.</p>
<p>Unfortunately, I&#8217;ve run into a bit of a complication. The ADC accesses a <a href="http://en.wikipedia.org/wiki/Script_%28computing%29" target="_blank">script </a>on the web server which then gathers the necessary data via <a href="http://en.wikipedia.org/wiki/Windows_Management_Instrumentation" target="_blank">Windows Management Instrumentation (WMI)</a>. While granting access to the script is easy, it&#8217;s been difficult to find the necessary access to allow the script to grab the WMI information from the server. Fortunately, we&#8217;ve got a good security staff who will hopefully be able to help. I know granting the application Administrator access allows it to work, but that might have other implications. Once everything is figured out, we&#8217;ll be using &#8220;Dynamic Load Balancing.&#8221; Dynamic Load Balancing,  as opposed to static load balancing, continually gathers information from its resources and changes its load balancing algorithm accordingly. This is typically the best load balancing method because it allows for sending requests to the most capable servers.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Configuring a Citrix NetScaler for the First Time]]></title>
<link>http://petespacket.com/2009/12/02/configuring-a-citrix-netscaler-for-the-first-time/</link>
<pubDate>Wed, 02 Dec 2009 17:33:37 +0000</pubDate>
<dc:creator>Peter Kurdziel</dc:creator>
<guid>http://petespacket.com/2009/12/02/configuring-a-citrix-netscaler-for-the-first-time/</guid>
<description><![CDATA[Configuring a Citrix NetScaler for the First Time Your new NetScaler is preconfigured with a default]]></description>
<content:encoded><![CDATA[Configuring a Citrix NetScaler for the First Time Your new NetScaler is preconfigured with a default]]></content:encoded>
</item>
<item>
<title><![CDATA[OBIEE clustering - specifying multiple Presentation Services from Presentation Services Plug-in]]></title>
<link>http://rnm1978.wordpress.com/2009/11/06/clustering-specifying-multiple-presentation-services-from-presentation-services-plug-in/</link>
<pubDate>Fri, 06 Nov 2009 11:00:12 +0000</pubDate>
<dc:creator>rnm1978</dc:creator>
<guid>http://rnm1978.wordpress.com/2009/11/06/clustering-specifying-multiple-presentation-services-from-presentation-services-plug-in/</guid>
<description><![CDATA[Introduction Whilst the BI Cluster Controller takes care nicely of clustering and failover for BI Se]]></description>
<content:encoded><![CDATA[Introduction Whilst the BI Cluster Controller takes care nicely of clustering and failover for BI Se]]></content:encoded>
</item>
<item>
<title><![CDATA[New level of parallelism in CloverETL]]></title>
<link>http://blog.cloveretl.com/2009/11/04/new-level-of-parallelism-in-cloveretl/</link>
<pubDate>Wed, 04 Nov 2009 12:28:07 +0000</pubDate>
<dc:creator>mvarecha</dc:creator>
<guid>http://blog.cloveretl.com/2009/11/04/new-level-of-parallelism-in-cloveretl/</guid>
<description><![CDATA[For the upcoming release of CloverETL 2.9, we are working on improvements in CloverETL Server which ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>For the upcoming release of CloverETL 2.9, we are working on improvements in CloverETL Server which will allow run transformations in parallel on multiple cluster nodes.</p>
<p>CloverETL Server already supports clustering, so more instances may cooperate to each other. Current stable version already implements common cluster features: fail-over/high-availability and scalability of lots of requests which are load-balanced on available cluster nodes. These features are actually implemented since version 1.3.</p>
<p><strong>The basic concept of new parallelism</strong><br />
Transformation may be automatically executed in parallel on more cluster nodes according to configuration and each of these &#8220;worker&#8221; transformations processes just its part of data. Because there is one &#8220;master&#8221; transformation, which manages the other transformations and which gathers tracking data from &#8220;worker&#8221; transformations, the parallelism is transparent for CloverETL Server client. Client by default &#8220;sees&#8221; just one (master) execution and aggregated tracking data. However there are still logs and tracking data for each of &#8220;worker&#8221; transformations, so it&#8217;s still possible to inspect details of this parallel execution. &#8220;Worker&#8221; transformations outputs are gathered to the &#8220;master&#8221;, thus client has one single transformation output which may be processed further.</p>
<p><strong>So how to get parts of input data?</strong><br />
Basically, transformation can process data which is already partitioned, which is the best case and there is no overhead with partitioning of data, or CloverETL Server itself can partition input data from one single source and distribute data on the fly (during the transformation) to several cluster nodes using the network connection. Overhead of this operation depends on the speed of network communication and other conditions.</p>
<p><strong>Design changes in the graph</strong><br />
We aim to keep the transformation graph almost the same as it would be for &#8220;standalone&#8221; execution. Thus there will be just a couple of extra components in the graph which is intended to run in parallel. These components will handle partitioning/departitioning of data in case it&#8217;s not already partitioned.</p>
<p><strong>Scalability</strong><br />
The new parallelism in CloverETL Server is a giant leap for scalability of the transformations. Ever since the graph is designed for paraller run, the number of computers which run this transformation depends just on cluster configuration. Graph itself is still the same. Configuration of the parallelism includes:</p>
<ul>
<li>working CloverETL Server cluster, thus standalone server instances won&#8217;t be able to handle such execution</li>
<li>&#8220;partitioned&#8221; sandbox(see below) with list of locations</li>
</ul>
<p><strong>New sandbox types</strong><br />
On server side, graphs and related files are organized in so-called sandboxes. Until version 2.8, there was just one type: &#8220;shared&#8221; sandbox. It means that it contains the same files and directory structure on all cluster nodes. Since version 2.9 there will be two more types:</p>
<ul>
<li>&#8220;local&#8221; sandbox &#8211; is (locally) accessible on just one cluster node. It&#8217;s intended for huge input/output data which is not intended to be shared/replicated among multiple cluster nodes.</li>
<li>&#8220;partitioned&#8221; sandbox &#8211; each of its physical location contains just part of data. It&#8217;s intended as a storage for partitioned input/output data of transformations which are supposed to run in parallel. List of physical locations actually specifies nodes which will run &#8220;worker&#8221; transformations.</li>
</ul>
<p><strong>Master &#8211; worker responsibilities</strong><br />
Master observes all related workers and when some transformation phase is finished on all workers, it&#8217;s master&#8217;s responsibility to allow the workers to process next phase. When any of the workers fails from any reason, it&#8217;s master&#8217;s responsibility to abort all the other workers and select whole execution as failed. Master/worker &#8211; These terms have meaning only in the scope of one transformation. Since 2.9 there is no privileged node configured as &#8220;master&#8221; in the cluster, but it doesn&#8217;t mean that all the nodes are equal. There may be differences between nodes in accessibility to physical sources. Configuration of sandboxes should reflect it.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Network diagnostics]]></title>
<link>http://benbiddington.wordpress.com/2009/11/02/network-diagnostics/</link>
<pubDate>Mon, 02 Nov 2009 18:04:15 +0000</pubDate>
<dc:creator>benbiddington</dc:creator>
<guid>http://benbiddington.wordpress.com/2009/11/02/network-diagnostics/</guid>
<description><![CDATA[If you have a problem like: One of a set of load balanced servers is behaving unexpectedly and Targe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>If you have a problem like:</p>
<ul>
<li><span style="background-color:#ffffff;">One of a set of load balanced servers is behaving unexpectedly <strong>and</strong></span></li>
<li><span style="background-color:#ffffff;">Targetting that machine directly by IP address does not fail the same way</span></li>
</ul>
<p>Then you may have a missing <a href="http://www.google.co.uk/search?rlz=1C1GGLS_en-GBGB320GB326&#38;sourceid=chrome&#38;ie=UTF-8&#38;q=host+header" target="_blank">host header</a>.</p>
<p><span style="background-color:#ffffff;">Your host name may be being routed to a different application.</span></p>
<p><span style="background-color:#ffffff;">This kind of thing has prompted us to think about writing smoke tests for this type of multi-machine configuration.</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Load Balancing MySQL: Part II]]></title>
<link>http://cloudbuzz.wordpress.com/2009/10/21/load-balancing-mysql-part-ii/</link>
<pubDate>Wed, 21 Oct 2009 07:01:24 +0000</pubDate>
<dc:creator>samof76</dc:creator>
<guid>http://cloudbuzz.wordpress.com/2009/10/21/load-balancing-mysql-part-ii/</guid>
<description><![CDATA[In the first part of this series we saw how the MySQL replication is setup on P/V machines. Now we s]]></description>
<content:encoded><![CDATA[In the first part of this series we saw how the MySQL replication is setup on P/V machines. Now we s]]></content:encoded>
</item>
<item>
<title><![CDATA[Heterogenous Multilink Load Balancing for on board Internet access]]></title>
<link>http://nonius.wordpress.com/2009/10/19/heterogenous-multilink-load-balancing-for-on-board-internet-access/</link>
<pubDate>Mon, 19 Oct 2009 16:16:28 +0000</pubDate>
<dc:creator>leoneldomingues</dc:creator>
<guid>http://nonius.wordpress.com/2009/10/19/heterogenous-multilink-load-balancing-for-on-board-internet-access/</guid>
<description><![CDATA[Nonius has launched an upgrade to its load balance satcom capable appliance &#8211; WGStargate. On b]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Nonius has launched an upgrade to its load balance satcom capable appliance &#8211; WGStargate.</p>
<div id="attachment_30" class="wp-caption aligncenter" style="width: 460px"><a rel="attachment wp-att-30" href="http://nonius.wordpress.com/2009/10/19/heterogenous-multilink-load-balancing-for-on-board-internet-access/stargatemultilink-3/"><img class="size-full wp-image-30" title="stargatemultilink" src="http://nonius.wordpress.com/files/2009/10/stargatemultilink2.jpg" alt="stargatemultilink" width="450" height="241" /></a><p class="wp-caption-text">On board internet from multiple links</p></div>
<p>This new version of the platform is capable of balancing traffic across up to 8 interfaces.<br />
The appliance is being used in ships and emergency trucks.</p>
<div id="attachment_31" class="wp-caption aligncenter" style="width: 270px"><a rel="attachment wp-att-31" href="http://nonius.wordpress.com/2009/10/19/heterogenous-multilink-load-balancing-for-on-board-internet-access/wgstargateappliance/"><img class="size-full wp-image-31" title="wgstargateappliance" src="http://nonius.wordpress.com/files/2009/10/wgstargateappliance.jpg" alt="wgstargateappliance" width="260" height="102" /></a><p class="wp-caption-text">WGStargate Appliance</p></div>
<p>For more info on the appliance <a href="http://www.noniussoftware.com">www.noniussoftware.com</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Load Balancing MySQL: Part I]]></title>
<link>http://cloudbuzz.wordpress.com/2009/10/19/load-balancing-mysql-part-i/</link>
<pubDate>Mon, 19 Oct 2009 12:17:18 +0000</pubDate>
<dc:creator>samof76</dc:creator>
<guid>http://cloudbuzz.wordpress.com/2009/10/19/load-balancing-mysql-part-i/</guid>
<description><![CDATA[We, at CSS Labs, are working towards getting a load balanced MySQL server setup on EC2. So the first]]></description>
<content:encoded><![CDATA[We, at CSS Labs, are working towards getting a load balanced MySQL server setup on EC2. So the first]]></content:encoded>
</item>
<item>
<title><![CDATA[How can I configure an ACE to translate a public address to a private VIP?]]></title>
<link>http://petespacket.com/2009/10/19/how-can-i-configure-an-ace-to-translate-a-public-address-to-a-private-vip/</link>
<pubDate>Mon, 19 Oct 2009 10:07:40 +0000</pubDate>
<dc:creator>Peter Kurdziel</dc:creator>
<guid>http://petespacket.com/2009/10/19/how-can-i-configure-an-ace-to-translate-a-public-address-to-a-private-vip/</guid>
<description><![CDATA[How can I configure an ACE to translate a public address to a private VIP? ACE does translation from]]></description>
<content:encoded><![CDATA[How can I configure an ACE to translate a public address to a private VIP? ACE does translation from]]></content:encoded>
</item>
<item>
<title><![CDATA[Virtualisation d'une architecture web : haute disponibilité, évolutivité, et répartition de charge]]></title>
<link>http://ntil.wordpress.com/2009/10/18/virtualisation-dune-architecture-web-haute-disponibilite-evolutivite-et-repartition-de-charge/</link>
<pubDate>Sun, 18 Oct 2009 17:20:40 +0000</pubDate>
<dc:creator>Michael Bideau</dc:creator>
<guid>http://ntil.wordpress.com/2009/10/18/virtualisation-dune-architecture-web-haute-disponibilite-evolutivite-et-repartition-de-charge/</guid>
<description><![CDATA[Richard Demongeot, un ami administrateur systèmes Unix, a conçu une architecture matérielle et logic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignleft size-full wp-image-736" style="border:0 none;" title="blue-architecture-cyan" src="http://ntil.wordpress.com/files/2009/10/blue-architecture-cyan.png" alt="blue-architecture-cyan" width="128" height="128" /><a title="Richard Demongeot" href="http://www.demongeot.biz/" target="_blank">Richard Demongeot</a>, un ami administrateur systèmes Unix, a conçu une <a title="Demongeot.biz - architecture web redondée et scalable" href="http://www.demongeot.biz/tutos/HauteDispo.php" target="_blank">architecture matérielle et logicielle taillée pour le web avec une </a><a title="Demongeot.biz - architecture web redondée et scalable" href="http://www.demongeot.biz/tutos/HauteDispo.php" target="_blank">forte résistance aux pannes et une qualité de service augmentée</a>. Elle est fortement basée sur la virtualisation et peut donc être mise en place à partir de 2 serveurs (physiques). Son fonctionnement est illustré ci-dessous. Sur la page de l&#8217;auteur vous trouverez <a title="Demongeot.biz - architecture web redondée et scalable" href="http://www.demongeot.biz/tutos/HauteDispo.html" target="_blank">une liste détaillée des applications qui composent chaque service</a>.</p>
<p style="text-align:center;"><a href="http://ntil.wordpress.com/files/2009/10/archi_web_scaling_virtualized_v1.png"><img class="size-full wp-image-685 aligncenter" style="margin-bottom:10px;" title="Scalable, Redundant and Load Balanced Web Architecture : thank you Virtualization" src="http://ntil.wordpress.com/files/2009/10/archi_web_scaling_virtualized_v1.png" alt="Scalable and Redundant Web Architecture : thank you Virtualization" width="480" height="477" /></a></p>
<p style="text-align:center;"><!--more--></p>
<h3>Un mot sur la virtualisation</h3>
<p>Les deux serveurs physiques disposent à eux seuls de l&#8217;ensemble des services nécessaires à une architecture web tout en offrant de la <a title="Wikipedia.fr - répartition de charge" href="http://fr.wikipedia.org/wiki/R%C3%A9partition_de_charge" target="_blank">répartition de charge</a> et de la <a title="Wikipedia.fr - redondance" href="http://fr.wikipedia.org/wiki/Redondance" target="_blank">redondance</a> (de services). Cela est possible grâce à la <a title="Wikipedia.fr - virtualisation" href="http://fr.wikipedia.org/wiki/Virtualisation" target="_blank">virtualisation</a>.</p>
<p>En effet sur le serveur n°1 comme sur le n°2 un système hôte (dom0) ajoute une couche qui abstrait l&#8217;accès aux ressources de la machine (CPU, RAM, DISK, etc.) et permet notamment de les découper en parts (inégales) que l&#8217;on redistribue ensuite à des systèmes virtualisés.</p>
<p>Un système virtualisé est un système d&#8217;exploitation complet qui est lancé tel une application du système hôte (pour simplifier fortement). Ainsi un système hôte peut lancer plusieurs systèmes d&#8217;exploitation sur une même machine physique et cela permet d&#8217;isoler les différents services pour plus de sécurité et une meilleure allocation des ressources de la machine grâce au système de parts virtuelles.</p>
<p>L&#8217;avantage le plus important de la virtualisation est la souplesse qu&#8217;elle apporte et ici cela se traduit par une évolutivité à toutes épreuves (ou presque).</p>
<h3>Haute disponibilité : résistance aux pannes</h3>
<p>Chaque service est redondé, c&#8217;est à dire présent en double, un sur chaque serveur physique. Si l&#8217;un des deux vient à bugger, le second prend la relève immédiatement (un temps infime est nécessaire pour basculer de l&#8217;un à l&#8217;autre) et assure ainsi la continuité du service. Cela est valable quelque soit le service : web, filer, mail, etc.</p>
<h3>Qualité de service : répartition de charge</h3>
<p>En plus d&#8217;être dupliqués pour garantir une disponibilité constante, les services qui le nécessitent (web, sql, et mail) sont gérés par un répartiteur de charge. Cela permet de distribuer le service de manière efficace entre deux serveurs virtuels (chacun situé sur une machine physique différente) qui rendent le même service. L&#8217;objectif étant d&#8217;assurer le traitement d&#8217;un maximum de requêtes en un minimum de temps.</p>
<h3>Service Web efficace : séparation du contenu dynamique &#8211; statique</h3>
<p>En plus de la répartition de charge, le service web est divisé en deux pour une meilleure efficacité, l&#8217;un dynamique et l&#8217;autre statique (tous deux &#8220;load balanced&#8221;).</p>
<p>Le premier traite tout le contenu dit &#8220;dynamique&#8221; ce qui correspond typiquement à la génération de code HTML (via PHP) pour afficher les pages web.</p>
<p>Le second est en charge de délivrer tout le contenu dit &#8220;statique&#8221;, ce qui peut se traduire par &#8220;tout fichier qui n&#8217;est pas généré dynamiquement&#8221;. En général on retrouve dans l&#8217;aspect statique, des fichiers tels que des images, des mp3, des vidéos, etc.On pourrait également mettre ici les fichiers CSS, JS, XML.</p>
<h3>Reprise sur panne simplifiée : politique de sauvegarde pertinente</h3>
<p>En plus de la duplication des filers, ce qui limite déjà fortement les pannes, un service de backup est présent afin de réaliser une sauvegarde de chacun des systèmes virtuels complets de chaque service provenant de l&#8217;autre machine physique. Ainsi, si une des deux machines vient à ne plus fonctionner, on peut reconstruire une nouvelle machine très simplement à partir du service de backup de la machine restante qui contient les données de celle qui est down.</p>
<h3>A venir : aspect réseau</h3>
<p>Il y a déjà énormément à dire sur cette architecture en l&#8217;état, c&#8217;est pourquoi Richard (et moi-même) ajouterons dans un deuxième temps tous les aspect réseaux.</p>
<h3>A noter : ceci n&#8217;est (pour l&#8217;instant) que de la théorie</h3>
<p>Cette architecture web n&#8217;a pour l&#8217;instant pas encore été réalisée par nos soins, et cela ne reste donc que de la théorie. Cependant très prochainement l&#8217;auteur, <a title="Richard Demongeot" href="http://www.demongeot.biz/" target="_blank">Richard Demongeot</a>, aura l&#8217;occasion de la réaliser à titre personnel. Bien entendu, il ne manquera pas de nous faire partager ses retours d&#8217;expérience sur ce projet très INtéressant.</p>
<p>La société <a title="Sivit.fr" href="http://http//www.sivit.fr/fr/index.php" target="_blank">SIVIT.fr</a>, dans laquelle il travaille, réalise déjà ce type d&#8217;infrastructure et je vous conseille, pour ceux qui sont intéressés, d&#8217;aller voir leurs offres à très bon rapport qualité / prix.</p>
<p>Stay tuned <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>La rédaction de cet article a nécessité 2h14.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Experienced Network Administrator needed]]></title>
<link>http://mindsourceinc.wordpress.com/2009/09/25/experienced-network-administrator-needed/</link>
<pubDate>Fri, 25 Sep 2009 16:18:15 +0000</pubDate>
<dc:creator>Michelle</dc:creator>
<guid>http://mindsourceinc.wordpress.com/2009/09/25/experienced-network-administrator-needed/</guid>
<description><![CDATA[MindSource specializes in placing technology professionals with companies in the Silicon Valley Regi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>MindSource</strong> specializes in placing technology professionals with companies in the Silicon Valley Region and beyond. We have a need for a Network Administrator to work with our client in Mt. View, CA. This is a<strong> CONTRACT</strong> position, so let me know your interest <strong>ASAP</strong>!</p>
<p>Our client is seeking an energetic and experienced Network Engineer with Juniper router experience. If you have just done Cisco, you will not be a fit. Also, hands-on experience with Citrix netscalers and Netscreen VPN/firewalls is important.</p>
<p>You would join a heterogeneous team of 6 system and network engineers who support the production and development environments. Specifically, the team is tasked with taking project handoffs from engineering and implementing as well as providing ongoing support for said &#8220;services&#8221;. In addition to implementation, the team is tasked with carrying out smaller scale changes (setting up ACL&#8217;s, load balancing, VPN, caching, switching, routing, etc). Most client interaction is internal, though we do get involved with external clients for some configuration work as well as outage support. This team is on call 24/7 to provide tier 2/3 level support as necessary.</p>
<p>The ideal candidate would have a broad background in both network (primary) as well as system level troubleshooting. A generalist with solid troubleshooting skills is probably the best way to describe it.<br />
<strong><br />
Specific skills:</strong></p>
<ul>
<li>System level network debugging (Solaris, Linux and a little bit of Windows)</li>
<li>packet switching, packet routing</li>
<li>in-depth knowledge of routers, switches, load balancing, VPN.</li>
<li>familiar with JunOS, Citrix netscaler, Netscreen, Blue Coat, SBC&#8217;s, Cisco switches</li>
<li>knowledge of shell scripting (regex)</li>
<li>experience in HA multi-site networks</li>
<li>data circuit troubleshooting (T1&#8217;s to OC3&#8217;s)</li>
<li>familiarity with VOIP is helpful</li>
<li>console/command line network config (we don&#8217;t use gui&#8217;s to configure network<br />
equipment)</li>
<li>RCS (revision control system) and ACL*s</li>
<li>perform and read/debug packet captures</li>
<li>5 plus years experience</li>
<li>change management familiarity</li>
<li>conceptual knowledge of 7-layer OSI model</li>
</ul>
<p>If you are interested in this position, please forward your resume to <a href="mailto:kathy@mindsource.com?subject=I am interested in the Network Administrator position">kathy@mindsource.com</a> TODAY!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[OBIEE cluster controller failover in action]]></title>
<link>http://rnm1978.wordpress.com/2009/09/15/obiee-cluster-controller-failover-in-action/</link>
<pubDate>Tue, 15 Sep 2009 15:06:57 +0000</pubDate>
<dc:creator>rnm1978</dc:creator>
<guid>http://rnm1978.wordpress.com/2009/09/15/obiee-cluster-controller-failover-in-action/</guid>
<description><![CDATA[Production cluster is 2x BI Server and 2x Presentation Services, with a BIG-IP F5 load balancer on t]]></description>
<content:encoded><![CDATA[Production cluster is 2x BI Server and 2x Presentation Services, with a BIG-IP F5 load balancer on t]]></content:encoded>
</item>
<item>
<title><![CDATA[PHP session maxlifetime]]></title>
<link>http://web4us.wordpress.com/2009/09/02/php-session-maxlifetime/</link>
<pubDate>Wed, 02 Sep 2009 13:39:02 +0000</pubDate>
<dc:creator>webforus</dc:creator>
<guid>http://web4us.wordpress.com/2009/09/02/php-session-maxlifetime/</guid>
<description><![CDATA[A PHP Session Cookie (mostly defined as PHPSESSID) has a default life time until the browser is clos]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span class="mcon"> A PHP <strong>Session Cookie</strong> (mostly defined as PHPSESSID) has a default life time until the browser is closed. This is OK for many web-applications, but in some cases this is not wanted and the lifetime can be changed &#8211;  we will cover this later.</span></p>
<p>Another session-relevant issue is the PHP <strong>garbage collector</strong>. When a session is created, a flat-file is created on the server &#8211; e.g. in /tmp on linux servers. Since the session ID is a unique identifier, those session files will accumulate over time &#8211; the garbage collector will take care of these files and delete old files from time to time. PHP has a sort of built-in &#8220;<strong>load-balancing</strong>&#8221; feature for this garbage collector, so that old session files are not deleted on each and every session request, but with a certain probability. The default <strong>timeout</strong> for session files is 1440 seconds or 24 minutes. So a session file can be deleted after that timeout, but it may reside on the server longer, depending on the amount of sessions created &#8211; here comes the probability into the game.</p>
<p>//<br />
// <!--more--><br />
So we have a session cookie with a lifetime until the browser is closed, but the garbage collector might delete the session file much earlier. In this case, and if there is a session request after the session file has been deleted, a new session is created and the old session information is lost. This can be very annoying if e.g. the users is writing some message in a web-based interface and this task takes longer than the session file on the server is available.</p>
<p>There are 3 PHP.ini variables, which deal with the garbage collector:</p>
<table border="1" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td><strong>PHP ini value name</strong></td>
<td><strong>default</strong></td>
<td><strong>Changeable</strong></td>
</tr>
<tr>
<td>session.gc_maxlifetime</td>
<td>1440 seconds</td>
<td>PHP_INI_ALL</td>
</tr>
<tr>
<td>session.gc_probability</td>
<td>1</td>
<td>PHP_INI_ALL</td>
</tr>
<tr>
<td>session.gc_divisor</td>
<td>100</td>
<td>PHP_INI_ALL</td>
</tr>
</tbody>
</table>
<p><span class="mcon"><br />
<strong> session.gc_probability</strong> in conjunction with <strong>session.gc_divisor</strong> is used to manage probability that the gc  (garbage collection) routine is started. The probability is calculated by using gc_probability/gc_divisor,  e.g. 1/100 means there is a 1% chance that the GC process starts on each request.</span></p>
<p>The most important variable is <strong>session.gc_maxlifetime</strong>:<br />
As discussed earlier, this variable sets the timeout for session file deletion.<br />
All three variables can be set in the php.ini configuration file, but more important, those can be also set during runtime due the PHP_INI_ALL permission.</p>
<p>//<br />
//</p>
<pre>$garbage_timeout = 3600; // 3600 seconds = 60 minutes = 1 hour
ini_set('session.gc_maxlifetime', $garbage_timeout);</pre>
<p>So we just changed the garbage collection timeout to one hour. There is just another problem. Since PHP stores all session files into one directory (e.g. /tmp on Linux) and the garbage collector can&#8217;t tell the difference between the different gc_maxlifetime&#8217;s of the individual session files, the session files are deleted by the garbage collector with the lowest timeout.</p>
<p>The solution for this problem is another session file directory. This is best accomplished by creating another directory *within* the regular session file directory.<br />
First we read the current save path for the session files and append our own directory to this path. Note: In order to make that platform independent, we need to check for the file-seperator first. Now we check if the directory already has been created, if not, create one. Then we set the new path for the session files.</p>
<pre>strstr(strtoupper(substr($_SERVER["OS"], 0, 3)), "WIN") ?
	$sep = "\\" : $sep = "/";
$sessdir = ini_get('session.save_path').$sep."my_sessions";
if (!is_dir($sessdir)) { mkdir($sessdir, 0777); }
ini_set('session.save_path', $sessdir);</pre>
<p>Now our session files are stored in the new directory and the regular garbage collector will not see them, so those files will survive at least that long as defined in gc_maxlifetime.</p>
<p>If you have enough disk space on the server you can set the session file timeout really long, in order to preserve most/all sessions until the browsers are closed. But in many cases the session should expire after a certain time, so we have to change the life-time of the session cookie itself.</p>
<pre>$cookie_path = "/";
$cookie_timeout = 60 * 30; // in seconds
session_set_cookie_params($cookie_timeout, $cookie_path);</pre>
<p>(the cookie path can be &#8220;/&#8221; or e.g. &#8220;/somedirectory&#8221; if the cookie should be valid for a certain directory only)</p>
<p>NOTE: All these changes MUST be made before the actual session is opened with session_start() or session_register().</p>
<p><strong>Conclusion:</strong><br />
So we have a session cookie with a custom-defined lifetime, and we also redefined the garbage collector timeout. This ensures that the current session data (identified with the session id PHPSESSID) is available at least as long as the session cookie in the browser is valid.</p>
<p>Last but not least, we have the example source code session.php, which shows all steps together.</p>
<p>//<br />
//<br />
<strong>session.php</strong></p>
<pre>&#60;?
// path for cookies
$cookie_path = "/";

// timeout value for the cookie
$cookie_timeout = 60 * 30; // in seconds

// timeout value for the garbage collector
//   we add 300 seconds, just in case the user's computer clock
//   was synchronized meanwhile; 600 secs (10 minutes) should be
//   enough - just to ensure there is session data until the
//   cookie expires
$garbage_timeout = $cookie_timeout + 600; // in seconds

// set the PHP session id (PHPSESSID) cookie to a custom value
session_set_cookie_params($cookie_timeout, $cookie_path);

// set the garbage collector - who will clean the session files -
//   to our custom timeout
ini_set('session.gc_maxlifetime', $garbage_timeout);

// we need a distinct directory for the session files,
//   otherwise another garbage collector with a lower gc_maxlifetime
//   will clean our files aswell - but in an own directory, we only
//   clean sessions with our "own" garbage collector (which has a
//   custom timeout/maxlifetime set each time one of our scripts is
//   executed)
strstr(strtoupper(substr($_SERVER["OS"], 0, 3)), "WIN") ?
	$sep = "\\" : $sep = "/";
$sessdir = ini_get('session.save_path').$sep."my_sessions";
if (!is_dir($sessdir)) { mkdir($sessdir, 0777); }
ini_set('session.save_path', $sessdir);

// now we're ready to start the session
session_start();

session_register('mytest');
print "mytest=".$_SESSION['mytest']."&#60;br&#62;&#60;br&#62;";
$_SESSION['mytest'] = "captain";
?&#62;</pre>
<p>source: http://www.captain.at/howto-php-sessions.php</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Give Precedence to Session Sharing Over Load Balancing]]></title>
<link>http://jariangibson.com/2009/09/01/give-precedence-to-session-sharing-over-load-balancing/</link>
<pubDate>Wed, 02 Sep 2009 02:31:08 +0000</pubDate>
<dc:creator>Jarian Gibson</dc:creator>
<guid>http://jariangibson.com/2009/09/01/give-precedence-to-session-sharing-over-load-balancing/</guid>
<description><![CDATA[Citrix XenApp 5.0 Windows 2003 Hotfix Rollup 4 has new feature enhancement that allows you to give p]]></description>
<content:encoded><![CDATA[Citrix XenApp 5.0 Windows 2003 Hotfix Rollup 4 has new feature enhancement that allows you to give p]]></content:encoded>
</item>
<item>
<title><![CDATA[Load Sharing, Load Balancing, Task Scheduling, dan Parallel Computing]]></title>
<link>http://maleskoding.wordpress.com/2009/08/24/load-sharing-load-balancing-task-scheduling-dan-parallel-computing/</link>
<pubDate>Mon, 24 Aug 2009 22:53:27 +0000</pubDate>
<dc:creator>petra</dc:creator>
<guid>http://maleskoding.wordpress.com/2009/08/24/load-sharing-load-balancing-task-scheduling-dan-parallel-computing/</guid>
<description><![CDATA[Di dalam dunia distributed system ada beberapa istilah yang mirip-mirip tapi sebenarnya digunakan da]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Di dalam dunia <em>distributed system</em> ada beberapa istilah yang mirip-mirip tapi sebenarnya digunakan dalam konteks yang berbeda.</p>
<p><em><strong>Load sharing</strong> </em>bertujuan untuk membagi-bagikan pekerjaan dari satu atau beberapa sumber pekerjaan kepada satu atau beberapa pekerja sehingga tidak ada satupun pekerja yang tidak mendapat pekerjaan dalam suatu waktu.</p>
<p><em><strong>Load balancing</strong> </em>bertujuan untuk menyamakan <em>workload </em>pada seluruh mesin pekerja.</p>
<p><em><strong>Task scheduling</strong> </em>adalah kegiatan untuk membagikan pekerjaan ke pada banyak mesin pekerja secara optimal dengan memperhitungkan beban kerja, kecepatan kerja, dan lain-lain.</p>
<p><em><strong>Parallel computing</strong> </em>bertujuan untuk melakukan sebuah pekerjaa dengan membagi-bagi pekerjaan besar tersebut menjadi pekerjaan-pekerjaan yang lebih kecil dan mengerjakannya secara paralel.</p>
<p>Apa mereka itu dan bedanya di mana akan gw coba jabarkan satu per satu di postingan selanjutnya. ^_^ (<em>ntar kalo sempet</em>)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Freeky Bug]]></title>
<link>http://blog.gahooa.com/2009/08/22/freeky-bug/</link>
<pubDate>Sun, 23 Aug 2009 03:38:52 +0000</pubDate>
<dc:creator>Jason Garber</dc:creator>
<guid>http://blog.gahooa.com/2009/08/22/freeky-bug/</guid>
<description><![CDATA[Ever have one of those bugs that customers complain about, but you just cannot reproduce it? Here is]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ever have one of those bugs that customers complain about, but you <strong>just cannot reproduce it?</strong> Here is a good one&#8230;</p>
<p>Customers were complaining about being logged out when clicking a download link.</p>
<p>This particular setup is a Cisco CSS 11501 series load balancer with 2 Dell Poweredge web servers sitting behind it.  Each webserver is running apache, as well as an application server (python) which handles authentication and processing for THAT server.</p>
<p>For weeks, I <strong>c</strong><strong>ould not</strong> reproduce this bug.  So tonight when I finally got bit by it (at home), I was clueless for a while.  The code is so simple.  A simple key lookup in a simple dictionary, yet it just was not making sense.</p>
<h2>Here is the story:</h2>
<p><em>A while ago, we were having problems with Internet Explorer downloading content over SSL.  This turns out to be a common problem with IE, so to fix it, I caused the downloads to not use SSL, which is more efficient anyway.</p>
<p>We use a cisco hardware load balancer which balances incoming requests to different backend servers.  It has a feature called STICKY SOURCE IP, which means that any connections routed from the same IP to the same site will be delivered to the same backend server.  This is nice, because you are always visiting the same server.</p>
<p>So as it turns out, by turning the download SSL off, the load balancer was using another &#8220;site&#8221; definition to handle the DOWNLOAD request.  STICKY SOURCE IP was out the window, and the request was being passed back to a &#8220;random&#8221; webserver.</p>
<p>About 50% of the time, users (like me tonight) were tossed to the other server, which knew </em><strong><em>nothing</em></strong><em> about the user login. That is why it was complaining about the &#8220;</em><strong><em>WB4_App::$DSEG and/or WB4_App::$AuthToken must be set in order to contact the     applications server.&#8221;</em></strong><em> error message, which is not one that should normally be shown.</p>
<p>To make matters worse, our IP address at work was apparently always using the same server, so I could not reproduce the problem.  I&#8217;m lucky that it happened to me at home, or I would still be banging my head against the desk&#8230;</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Glassfish Load Balancing using Apache and Mod_JK]]></title>
<link>http://qants.wordpress.com/2009/08/18/glassfish-load-balancing-using-apache-and-mod_jk/</link>
<pubDate>Tue, 18 Aug 2009 16:42:16 +0000</pubDate>
<dc:creator>Alex Ersenie</dc:creator>
<guid>http://qants.wordpress.com/2009/08/18/glassfish-load-balancing-using-apache-and-mod_jk/</guid>
<description><![CDATA[Considering that Glassfish seems to be the very best next Application Server for Java Enterprise App]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Considering that Glassfish seems to be the very best next Application Server for Java Enterprise Applications, clustering and load balancing started to be a hot topic, especially considering the ease of configuring the Glassfish Cluster, both <strong>horizontal </strong>and <strong>vertical, clustering </strong>that is.  For those still asking themselves what is the difference between the two forms of clustering:</p>
<ul>
<li>
<h2><strong>Horizontal Clustering:</strong></h2>
</li>
</ul>
<p>Grouping multiple physical servers into a cluster. A <strong>horizontal cluster</strong> consists of a cluster of servers that are exposed to browser clients as a single virtual server. <strong>Horizontal clusters</strong> help to increase application scalability, performance, and robustness</p>
<ul>
<li>
<h2><strong>Vertical Clustering:</strong></h2>
</li>
</ul>
<p>A vertical cluster is like a horizontal cluster, except that rather than use several server machines linked together, vertical clusters use a single machine with multiple CPUs. Vertical clusters help to increase scalability on multiprocessor computers since they distribute work to several processes. Each process runs on a different CPU.</p>
<p>Now, although Glassfish has a pretty good integrated load balancing in its DAS (Domain Administration Server), one may work with the &#8220;older&#8221;, and mature Apache Web Server, for controlling and distributing the requests further on to the load balancers. This is what this article is about:Configuring the Glassfish Cluster, getting it ready for communicating with Apache, configuring Apache to talk to the Glassfish Cluster. Allright, that being said, let&#8217;s move on.</p>
<h2><strong>Prerequisites</strong></h2>
<p>This article has been written after using the following packages:</p>
<ul>
<li><span style="color:#993300;">Apache Web Server : Version 2.2.10</span></li>
<li><span style="color:#993300;">Sun Glassfish Application Server: Version 2.1</span></li>
</ul>
<p>Besides the &#8220;heavyweight&#8221; you will need some extra packages, which you can download from the locations specified together with the packages:</p>
<ul>
<li><span style="color:#993300;">Mod_JK</span><span style="color:#993300;">: Version 1.2.2.8 &#8212; Get it <a title="Mod JK Apache 2 x86_64" href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.28/x86_64/" target="_blank">HERE</a></span> ( this is the version for x86_64 servers)</li>
<li><span style="color:#993300;">tomcat-ajp.jar: <span style="color:#000000;">You can get it from a Tomcat 5.5 distribution, after unpacking it.  I have used Tomcat 5.5.27 from <a title="Tomcat 5.5.27" href="http://www.internetbs.net/apache.org/tomcat/tomcat-5/v5.5.27/bin/" target="_blank">HERE</a></span> </span></li>
<li><span style="color:#993300;">commons-logging.jar: Version 1.1.1 &#8212; Get it <a title="Commons Logging" href="http://www.internetbs.net/apache.org/commons/logging" target="_blank">HERE</a></span></li>
<li><span style="color:#993300;">commons-modeler.jar: Version 2.0.1 &#8212; Get it <a title="Commons Modeler" href="http://www.internetbs.net/apache.org/commons/modeler/" target="_blank">HERE</a></span></li>
</ul>
<h2><span style="color:#000000;"><em><strong>1 &#8211; Configure Apache for Mod_JK</strong></em></span></h2>
<p>The Apache Server&#8217;s loads the module files from a configuration file. In this case, working with a distribution of SuSE 10, the configuration file for loading modules resides under the following path:</p>
<p style="text-align:center;"><span style="color:#008000;"><strong>/etc/apache2/sysconfig.d/loadmodules.conf</strong></span></p>
<p style="text-align:left;">Open this file to get a view on where the modules are located. In this case, the file above tells us that all modules reside under:</p>
<p style="text-align:center;"><span style="color:#008000;"><strong>/usr/lib64/apache2-prefork/</strong></span></p>
<p style="text-align:left;">Ok, so we now know where the modules are. It is time to unpack our mod_jk package, that you just downloaded in the prerequisites section, and copy the contained <strong>mod_jk.so</strong> file in the modules folder. The <strong>filename of the module is &#8220;mod_jk.so&#8221;</strong>. Copy (unpack it) in the folder above.</p>
<p style="text-align:left;">Now you are ready to configure Apache for loading mod_jk. In order to do that, add the following line to the <strong>default module load configuration file</strong> (/etc/apache2/sysconfig.d/loadmodules.conf)</p>
<p style="text-align:center;"><em><span style="color:#008000;">LoadModule jk_module  /usr/lib64/apache2/mod_jk.so</span></em></p>
<p style="text-align:left;"><span style="color:#008000;"><span style="color:#000000;">Save the fi</span></span><span style="color:#008000;"><span style="color:#000000;">le and close it. In order to test your webserver, restart it by running:</span></span></p>
<p style="text-align:center;"><span style="color:#ff6600;"><em>/etc/init.d/apache2 restart</em></span></p>
<h2 style="text-align:left;"><strong><em><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">2 &#8211; Create your Glassfish Cluster</span></span></span></span></em></strong></h2>
<p><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">This article will describe the process of creating<strong> two glassfish instances</strong>, in a <strong>horizontal clustering mode</strong> ( each of the instance will be on a physical independent server) In order to understand some of the words we are going to user as we go along, a little introduction would be needed:</span></span></span></span></p>
<p><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">One server can host multiple cluster instances (vertical clustering) Combining two such servers, you will accomplish both a horizontal, and a vertical clustering. We will stick to the horizontal one, and limit ourselves to two instances, each of them located on one independent server.</span></span></span></span></p>
<p><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">In order to manage the instances, the Glassfish Administration Server (DAS), needs some <strong>&#8220;remote agents&#8221;</strong> on the servers where the instances resided. These agents are responsible for:</span></span></span></span></p>
<ul>
<li><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">starting / stopping instances</span></span></span></span></li>
<li><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">deploying applications</span></span></span></span></li>
<li><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">synchronizing repositories</span></span></span></span></li>
<li><span style="color:#008000;"><span style="color:#000000;"><span style="color:#339966;"><span style="color:#000000;">etc.<br />
</span></span></span></span></li>
</ul>
<p>So, basically we have the<strong> DAS (Domain Administration Server)</strong> communicating with <strong>agents</strong>, which manage <strong>cluster instances</strong></p>
<p>As you already know (and if you don&#8217;t, start all over with Glassfish Documentation), the basic concept that is at the root of the Glassfish Application Server, is the so called <strong>&#8220;DOMAIN&#8221;</strong>. You can have<strong> multiple domains configured</strong>, but <strong>only one domain can be running </strong>at the same time. We will:</p>
<ul>
<li>create a new domain</li>
<li>create a cluster for the domain</li>
<li>create agents for the cluster</li>
<li>create instances for the cluster</li>
</ul>
<p>In this article, all the steps will be performed from command line, so make sure you have enough privileges before starting.Ok, time to hit the road <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote>
<ol>
<li>Create a new domain:<br />
<span style="color:#ff6600;"><em><br />
asadmin create-domain  &#8211;user admin &#8211;adminport 4848 domain1<br />
</em></span></li>
<li>Start domain:
<p><em> </em><span style="color:#ff6600;"><em>asadmin start-domain domain1</em></span><em> </em><span style="color:#ff6600;"><em> </em></span></li>
<li>Create a new cluster for the domain &#8220;<em>domain1</em><em>&#8221; </em><span style="color:#ff6600;"><em>
<p>asadmin create-cluster -u admin cluster1</em></span><em></p>
<p></em>Because no configuration was specified when creating the cluster, a new default configuration file named cluster1-config will be created. The heartbeat will be configured by default</li>
<li>Create a node agent on machine<em> &#8220;slave1&#8243;</em>Login on the &#8220;slave1&#8243; machine as user &#8220;glassfish&#8221; ( or a user with privileges) and run the following command:<br />
<em><br />
<span style="color:#ff6600;"> asadmin create-node-agent -host master &#8211;port 4848 slave1_agent</span></em></p>
<p>&#8220;master&#8221; is the name of the DAS (Domain Administration Server) and slave1_agent is the name of the agent on the &#8220;slave1&#8243; machine, that will communicate with the DAS. 4848 is the default DAS administration port. If being asked for a password, accept the default one (Just push ENTER). The default Master Password for GlassFish clustering is &#8220;changeit&#8221; (again, you do not have to tip it in, just press ENTER when prompted)<br />
Start the agent you just created by running the following command:</p>
<p><span style="color:#ff6600;"><em>asadmin start-node-agent slave1_agent</em></span></p>
<p><em> </em></li>
<li>Create a node agent on machine<em> &#8220;slave2&#8243;</em>Login on the &#8220;slave2&#8243; machine as &#8220;glassfish&#8221; user and run the following command<br />
<em><br />
<span style="color:#ff6600;"> asadmin create-node-agent &#8211;host master &#8211;port 4848 slave2_agent</span></em></p>
<p>Start the agent you just created:<br />
<em><br />
<span style="color:#ff6600;"> asadmin start-node-agent slave2_agent</span></em></li>
<li>Create instances on the DAS for the agents &#8220;slave1_agent&#8221; and &#8220;slave2_agent&#8221;Log into the DAS server as user &#8220;glassfish&#8221;<br />
Create the instance on &#8220;slave1_agent&#8221;<br />
<em><br />
<span style="color:#ff6600;">asadmin create-instance &#8211;user admin &#8211;host master &#8211;port 4848 &#8211;cluster cluster1 &#8211;nodeagent slave1_agent &#8211;systemproperties HTTP_LISTENER_PORT=58294:HTTP_SSL_LISTENER_PORT=58297:IIOP_LISTENER_PORT=58300:IIOP_SSL_LISTENER_PORT=58303:<br />
IIOP_SSL_MUTUALAUTH_PORT=58306:JMX_SYSTEM_CONNECTOR_PORT=58309 slave1_instance</span></em></p>
<p>Create the instance on &#8220;slave2_agent&#8221;</p>
<p><span style="color:#ff6600;"><em>asadmin create-instance &#8211;user admin &#8211;host master &#8211;port 4848 &#8211;cluster cluster1 &#8211;nodeagent slave2_agent &#8211;systemproperties HTTP_LISTENER_PORT=58294:HTTP_SSL_LISTENER_PORT=58297:IIOP_LISTENER_PORT=58300:IIOP_SSL_LISTENER_PORT=58303:<br />
IIOP_SSL_MUTUALAUTH_PORT=58306:JMX_SYSTEM_CONNECTOR_PORT=58309 slave2_instance</em></span></li>
</ol>
</blockquote>
<p>Ok. You have your clustered set-up. Now you need to configure your glassfish instances to communicate with Apache Mod_JK connector.</p>
<h2><strong><em>3 &#8211; Configure Glassfish for Mod_JK</em></strong></h2>
<p>Copy the rest of the connectors packages (tomcat-ajp.jar, commons-logging.jar, commons.modeler.jar) to the lib folder of your local Glassfish Installation (opt/glassfish/lib)</p>
<p>When started, the remote glassfish instances connect through the agents to their DAS (Domain Administration Server) and synchronize their configuration files. Therefore, we need to configure the options for Mod_JK on the DAS Server</p>
<p>Because we need each instance to communicate separately with the Apache mod_jk connector, we need to define the properties for each of the instances:</p>
<ol>
<li>Login to the DAS (the &#8220;master&#8221; in the configuration above)</li>
<li>Stop your domain:<em> </em><em> </em><span style="color:#ff6600;"><em>asadmin stop-domain domain1</em></span><em> </em></li>
<li>In order to be able to add multiple instance configurations, we need to make the configuration dynamic. We will first define the generic Routing property, and the listening port:<em> </em><span style="color:#ff6600;"><em> </em><em>asadmin create-jvm-options &#8211;target cluster1 &#8220;-DjvmRoute=\${AJP_INSTANCE_NAME}</em>
<p></span><em> </em><span style="color:#ff6600;"><em><br />
</em><em>asadmin create-jvm-options &#8211;target cluster1 &#8220;-Dcom.sun.enterprise.web.connector.enableJK=\${AJP_PORT}</em></span></p>
<p><em> </em>Yes, we basically define a port for each instance that wants to communicate via mod_jk.</li>
<li>Configure the system properties for the instances defined in the previous step<em>: </em><em> </em><span style="color:#ff6600;"><em>asadmin create-system-properties &#8211;target slave1_instance AJP_INSTANCE_NAME=slaveinstance1<br />
</em></span><em> </em><span style="color:#ff6600;"><em>asadmin create-system-properties &#8211;target slave1_instance AJP_PORT=8010</em></span><span style="color:#ff6600;"><em> </em><em> asadmin create-system-properties &#8211;target slave2_instance AJP_INSTANCE_NAME=slaveinstance2<br />
</em><em>asadmin create-system-properties &#8211;target slave2_instance AJP_PORT=8015</em></span></p>
<p><em> </em>As you can see, we defined port 8010 to be used by instance 1, and port 8015 by instance 2. We will need these values, when we define our so called &#8220;workers list&#8221; (who is working in the cluster, how, and where)</p>
<p><em> </em>The commands above will append the DAS domain.xml configuration file (the file is to be found in the root folder of your domain. i.e. /opt/glassfish/domain1/domain.xml). The instances will copy this file when started by the cluster.</li>
</ol>
<h2><em><strong>4 &#8211; Start Glassfish, the Agents and the cluster</strong></em></h2>
<ol>
<li>Start domainLogin to DAS and run the following command:<em> </em><span style="color:#ff6600;"><em>asadmin start-domain domain1</em></span><em><br />
</em></li>
<li>Start agent1Login on the &#8220;slave1&#8243; machine as &#8220;glassfish&#8221; user and run the following command<span style="color:#ff6600;"><em>asadmin start-node-agent slave1_agent</em></span><em> </em></li>
<li>Start agent2Login on the &#8220;slave2&#8243; machine as &#8220;glassfish&#8221; user and run the following command<span style="color:#ff6600;"><em>asadmin start-node-agent slave2_agent<br />
</em></span></li>
<li>Start the cluster (it will start the instances too)Log into the DAS Glassfish Server<span style="color:#ff6600;"><em>asadmin start-cluster cluster1</em></span></li>
</ol>
<h2><em><strong>5 &#8211; Configure Apache Mod_JK to work with Glassfish instances</strong></em></h2>
<p>Log into the Apache Server</p>
<p style="display:none;">
<p>First you need to configure your &#8220;workers&#8221;. Create a file called &#8220;workers.properties&#8221; in the installation folder of apache:</p>
<p style="display:none;">
<p>Be sure to use the name of the AJP_INSTANCE_NAME defined in 3.4 (Configure Glassfish instances for Mod-JK) when defining the worker.<strong>name</strong></p>
<p style="display:none;">
<p style="display:none;">
<p><em>worker.list=loadbalancer  # Array of load balancers</em></p>
<p style="display:none;">
<p><em>#Set properties for worker1</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1</em><em>.type=ajp13  # Protocol used. We use ajp13 cause it can handle ssl, as oposed to ajp12</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1.host=slave1 # Host name of the machine where the instance resides</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1.port=8010   # Port as we configured at point 4.4 (Configure Glassfish instances for Mod-JK)</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1.lbfactor=50</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1.cachesize=10</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1.cache_timeout=600</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1.socket_keepalive=1</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance1.socket_timeout=300</em></p>
<p style="display:none;">
<p><em>#Set properties for worker2</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.type=ajp13</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.host=slave2</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.port=8015</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.lbfactor=50</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.cachesize=10</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.cache_timeout=600</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.socket_keepalive=1</em></p>
<p style="display:none;">
<p><em>worker.slaveinstance2.socket_timeout=300</em></p>
<p style="display:none;">
<p><em>worker.loadbalancer.type=lb   # The balancing will be done using round-robin algorithm</em><em> </em></p>
<p><em>worker.loadbalancer.balanced_workers=slaveinstance1,slaveinstance2  # Which of the workers will be part of the load balancer</em></p>
<h2><em><strong>6 &#8211; Instruct Apache where to find the workers file</strong></em></h2>
<p>You can update the httpd.conf default configuration file of Apache, but i would reccommend creating a new configuration file, and including it in the defaul configuration file (httpd.conf) using the INCLUDE directive.</p>
<p style="display:none;">
<p>Create a new file called:</p>
<p style="display:none;">
<p>httpd.mod_jk.conf in the root apache installation</p>
<p style="display:none;">
<p>JkWorkersFile /etc/apache2/workers.properties<br />
# Where to put jk logs<br />
JkLogFile /var/log/apache2/mod_jk.log<br />
# Set the jk log level [debug/error/info]<br />
JkLogLevel debug<br />
# Select the log format<br />
JkLogStampFormat &#8220;[%a %b %d %H:%M:%S %Y] &#8220;<br />
# JkOptions indicate to send SSL KEY SIZE,<br />
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories<br />
# JkRequestLogFormat set the request format<br />
JkRequestLogFormat &#8220;%w %V %T&#8221;<br />
# Send all jsp requests to GlassFish<br />
JkMount /*.jsp loadbalancer<br />
# Now add all your applications that want the request to be sent to glassfish<br />
JkMount /clusterjsp/* loadbalancer # We used the clusterjsp sample application in the glassfish installation for testing</p>
<p style="display:none;">
<p>Include the mod_jk configuration file in the default configuration of apache (httpd.conf)</p>
<p style="display:none;">
<p>Include /etc/apache2/httpd.conf.mod_jk</p>
<p style="display:none;">
<p>Restart Apache</p>
<p style="display:none;">
<p><span style="color:#ff6600;"><em>/etc/init.d/apache2 restart</em></span></p>
<h2><em><strong>7 &#8211; Deploy sample application and test</strong></em></h2>
<p>Glassfish comes with a default clustered application called clusterjsp. Deploy the clusterjsp application on the cluster you created in step 3 (Create a Glassfish Cluster)</p>
<p style="display:none;">
<p>Open <a rel="nofollow" href="http://master:4848">http://master:4848</a></p>
<p style="display:none;">
<p>Login using admin:adminadmin</p>
<p style="display:none;">
<p>Go to Enterprise Applications</p>
<p style="display:none;">
<p>Select Deploy</p>
<p style="display:none;">
<p>Select &#8220;Local packaged file or directory&#8221;</p>
<p style="display:none;">
<p>Browse to . /opt/glassfish/samples/quickstart/clusterjsp/clusterjsp.ear</p>
<p style="display:none;">
<p>Check the &#8220;Availability&#8221; checkbox</p>
<p style="display:none;">
<p>Add cluster 1 from the available targets</p>
<p style="display:none;">
<p>Deploy</p>
<p style="display:none;">
<p>If everything worked ok, you should be testing it on your apache server:</p>
<p style="display:none;">
<p><a rel="nofollow" href="http://apacheserver/clusterjsp/">http://apacheserver/clusterjsp/</a> &#8211; The first instance should serve the application</p>
<p style="display:none;">
<p style="display:none;">
<p>Once again</p>
<p style="display:none;">
<p><a rel="nofollow" href="http://apacheserver/clusterjsp/">http://apacheserver/clusterjsp/</a> The second instance should serve the application</p>
<p style="display:none;">
<p style="display:none;">
<h3 style="text-align:center;"><span style="color:#ff6600;">That&#8217;s it! You have your Apache configured to load balance glassfish instances</span></h3>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Web Sys Admin - central London]]></title>
<link>http://calvinjnr.wordpress.com/2009/08/13/web-sys-admin-central-london/</link>
<pubDate>Thu, 13 Aug 2009 11:54:13 +0000</pubDate>
<dc:creator>calvinjnr</dc:creator>
<guid>http://calvinjnr.wordpress.com/2009/08/13/web-sys-admin-central-london/</guid>
<description><![CDATA[Looking for a Web Systems Administrator, someone who wants to push their career and join an expandin]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Looking for a Web Systems Administrator, someone who wants to push their career and join an expanding thriving digital agency. Excellent beneifts.</p>
<p>Salary upto £35k</p>
<p>Job description:<br />
Sys Admin<br />
We are looking for a talented techie to help us with managing, releasing and maintaining our clients sites. You are keen to be involved in the fast pace of agency life and like to try and bring a little order to the creative chaos.  You can keep a complex HA server environment purring whether it be windows or linux based.</p>
<p>You understand the technologies of web development and like to dabble at scripting to make something work or be just that bit easier.</p>
<p>Chasing down the cause of a fault is a game and once you are on the trail you see it through to the end.</p>
<p>Key responsibilities:<br />
• Maintaining our virtualised server environments hosted at a managed hosting provider.  (30%)<br />
• Applying OS updates<br />
• Hardening of environments<br />
• Managing hardware maintenance and failure recovery in cooperation with hosting provider<br />
• Scheduling maintenance<br />
• Release management (30%)<br />
• Working with the development team to schedule and plan releases and patches<br />
• Maintaining deployment archives<br />
• Configuring backups<br />
• Tools and workflow (10%)<br />
• Developing tools and systems to automate and improve development and deployment processes.<br />
• Integrating systems such as Continuous integration (CruiseControl), Source control (SVN), issue tracking (JIRA)<br />
• First line support and maintenance (30%)<br />
• Investigating issues on production sites through fault finding<br />
• Informing project managers and developer team of potential causes of issues<br />
• Rectifying the issue, if applicable</p>
<p>Environments and systems:<br />
• LAMP &#8211; Redhat, Apache, Mysql, PHP5,  cPanel<br />
• Windows IIS 6 on server 2003, MSSQL 2005.<br />
• Development, Staging and Production<br />
• Load balanced and high availability windows hosting<br />
• Akamai Content Delivery Network integration<br />
• Client hosting environments (Windows and Unix)</p>
<p>send your CV to: <a href="mailto:neil@majorplayers.co.uk">neil@majorplayers.co.uk</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Slackware 12.2 lighttpd-1.5.0-r1992 http sqf balanacing , php spawn-fcgi and nagios-2.3.1 ]]></title>
<link>http://dragkh.wordpress.com/2009/07/12/slackware-12-2-lighttpd-1-5-0-r1992-http-sqf-balanacing-php-spawn-fcgi-and-nagios-2-3-1/</link>
<pubDate>Sun, 12 Jul 2009 01:01:03 +0000</pubDate>
<dc:creator>dragkh</dc:creator>
<guid>http://dragkh.wordpress.com/2009/07/12/slackware-12-2-lighttpd-1-5-0-r1992-http-sqf-balanacing-php-spawn-fcgi-and-nagios-2-3-1/</guid>
<description><![CDATA[I discovered lighttpd several months ago, and just recently had chance to implement it as http proxy]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I discovered lighttpd several months ago, and just recently had chance to implement it as http proxy balancer for a group of 4 DL3205Gp boxes.<br />
I started with the 1.4.3, but  finished with 1.5.0-r1992 &#8230;<br />
All the boxes has lighty and Apache running, I have one box as http proxy  balancing the rest, and in case its dead, one of the resting three will become the loadbalancer.  The balancing is done via lighttpd 1.5 and its mod_proxy_core and mod_proxy_backend_http modules.<br />
Have to say, I use one of the boxes as NFS server,  and the resting three  mount the webserver directory in a view to serve the same contect &#8230;<br />
The tricky part was to bypass the nagios url from balancing, for abious reasons.<br />
The trick: in lighttpf.conf<br />
$HTTP["url"] !~ &#8220;\.(js&#124;css&#124;gif&#124;jpg&#124;png&#124;ico&#124;txt&#124;swf&#124;html&#124;htm)$&#124;^\/(nagios&#124;nagadmin)&#8221; {<br />
#$HTTP["url"] =~ &#8220;\.php$&#8221; {<br />
proxy-core.protocol = &#8220;http&#8221;<br />
proxy-core.balancer = &#8220;sqf&#8221;<br />
proxy-core.allow-x-sendfile = &#8220;enable&#8221;<br />
proxy-core.backends = (<br />
#  lighty pool<br />
# dont use the box &#8220;127.0.0.1:80&#8243;<br />
&#8220;10.99.99.11:80&#8243;<br />
,&#8221;192.168.11.12:80&#8243;<br />
,&#8221;192.168.11.13:80&#8243;<br />
#  APACHE pool<br />
#  dont use apache at the hosting box &#8230;,&#8221;127.0.0.1:8800&#8243;<br />
,&#8221;10.99.99.11:8800&#8243;<br />
,&#8221;192.168.11.12:8800&#8243;<br />
,&#8221;192.168.11.13:8800&#8243;</p>
<p>)<br />
proxy-core.max-pool-size = 3000<br />
}</p>
<p>in the light we have include of nagios.conf:<br />
alias.url =     (<br />
&#8220;/nagios/cgi-bin&#8221; =&#62; &#8220;/usr/local/nagios/sbin&#8221;,<br />
&#8220;/nagios&#8221; =&#62; &#8220;/usr/local/nagios/share&#8221;<br />
)</p>
<p>$HTTP["url"] =~ &#8220;^/nagios/cgi-bin&#8221; {<br />
cgi.assign = ( &#8220;&#8221; =&#62; &#8220;&#8221; )<br />
}</p>
<p>$HTTP["url"] =~ &#8220;nagios&#8221; {<br />
auth.backend = &#8220;htpasswd&#8221;<br />
auth.backend.htpasswd.userfile = &#8220;/etc/nagios/.htpasswd&#8221;<br />
auth.require = ( &#8220;&#8221; =&#62; (<br />
&#8220;method&#8221; =&#62; &#8220;basic&#8221;,<br />
&#8220;realm&#8221; =&#62; &#8220;Monitoring area&#8221;,<br />
&#8220;require&#8221; =&#62; &#8220;valid-user&#8221;<br />
)<br />
)<br />
setenv.add-environment = ( &#8220;REMOTE_USER&#8221; =&#62; &#8220;user&#8221; )<br />
$HTTP["url"] =~ &#8220;\.php$&#8221; {<br />
proxy-core.balancer = &#8220;round-robin&#8221;<br />
proxy-core.protocol = &#8220;fastcgi&#8221;<br />
proxy-core.allow-x-sendfile = &#8220;enable&#8221;<br />
proxy-core.backends = ( &#8220;unix:/tmp/php-fastcgi.sock&#8221;)<br />
proxy-core.max-pool-size = 16<br />
}<br />
}</p>
<p>In this way the nagios url is handled by the local box only.<br />
same settings will be for interna box, but using the proxy-core http protocol  instead &#8230;</p>
<p>At the end, I would like to thank Carlos Silva Santin for giving me  the chance to wotk with him in the past 30 days ..<br />
Carla  will grow up so fast Carlos &#8230; :p</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Low cost load balancing with Nginx and HAProxy on Linux]]></title>
<link>http://coder28.wordpress.com/2009/06/29/low-cost-load-balancing-with-nginx-and-haproxy-on-linux/</link>
<pubDate>Mon, 29 Jun 2009 05:59:59 +0000</pubDate>
<dc:creator>Chris</dc:creator>
<guid>http://coder28.wordpress.com/2009/06/29/low-cost-load-balancing-with-nginx-and-haproxy-on-linux/</guid>
<description><![CDATA[This post is more for future personal reference than anything, but maybe it will help someone else. ]]></description>
<content:encoded><![CDATA[This post is more for future personal reference than anything, but maybe it will help someone else. ]]></content:encoded>
</item>
<item>
<title><![CDATA[Information Demanding/Consuming]]></title>
<link>http://netfuture.wordpress.com/2009/06/26/information-demanding-consuming/</link>
<pubDate>Fri, 26 Jun 2009 05:57:07 +0000</pubDate>
<dc:creator>markpeak</dc:creator>
<guid>http://netfuture.wordpress.com/2009/06/26/information-demanding-consuming/</guid>
<description><![CDATA[เช้าวันนี้มีข่าวที่น่าตกใจคือ การเสียชีวิตของ Michael Jackson ราชาเพลงป๊อป ตอนแรกเห็นใน Twitter ส่วน]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>เช้าวันนี้มีข่าวที่น่าตกใจคือ การเสียชีวิตของ Michael Jackson ราชาเพลงป๊อป ตอนแรกเห็นใน Twitter ส่วนของ Trending Topics ก่อนเลย</p>
<p>เนื่องจาก MJ ถือว่าเป็นสุดยอดคนดังคนหนึ่งของโลก (แม้ว่าในระยะหลังๆ จะตกไปบ้าง) ทำให้กระแส &#8220;ความต้องการข้อมูลเกี่ยวกับ MJ&#8221; หรือ &#8220;ความต้องการพูดคุยเรื่อง MJ&#8221; พุ่งสูงมากในวันนี้</p>
<p>TechCrunch พาดหัวว่า<a href="http://www.techcrunch.com/2009/06/25/the-web-collapses-under-the-weight-of-michael-jacksons-death/"> The Web Collapses Under The Weight Of Michael Jackson’s Death</a> ส่วนตัวเลขดูได้จาก <a href="http://latimesblogs.latimes.com/technology/2009/06/huge-spike-in-michael-jackson-traffic-strains-web-sites.html">LATimes</a> ซึ่งสรุปสั้นๆ ว่า คน tweet เพิ่มขึ้นสองเท่าตัว และคนเล่น Facebook เพิ่มขึ้น 3 เท่าตัว</p>
<p>ผลที่ตามมาคือ Twitter ต้องปิดฟีเจอร์บางส่วน (Trending Topics และ Search) ออกไปเพื่อให้ระบบยังทำงานได้<!--more--></p>
<p>คำถามก็คือ เมื่อคนผูกพันกับเครือข่ายมากขึ้นเรื่อยๆ และเกิดเหตุการณ์เด่นในลักษณะนี้ขึ้น ด้วยพลังอำนาจของการสื่อสารผ่านเน็ตและจำนวนคนที่มากขึ้นเรื่อยๆ จะเกิดอาการ Big Head (อีกด้านของ Long Tail) ซึ่ง Head จะใหญ่มากๆๆๆๆ จนเครือข่ายรองรับไหวหรือไม่?</p>
<p>ปัจจุบันผู้ใช้เน็ตมีประมาณ 1 พันล้านคน อะไรคือทางออกในการรองรับ &#8220;ความต้องการที่จะบริโภคข้อมูล&#8221; ถ้าหากว่ามีเหตุการณ์ที่ชาวเน็ตทั้ง 1 พันล้านคนจะต้องการข้อมูลชิ้นเดียวกันพร้อมๆ กันในอนาคต (เช่น ลอบสังหาร ปธน. สหรัฐ?)</p>
<p>แล้วถ้าชาวเน็ตเพิ่มเป็น 2 พันล้าน 4 พันล้านล่ะ วิธีเดิมจะยังใช้งานได้หรือไม่ หรือว่าเราต้องใช้วิธีอื่น</p>
<p>ทางออกควรเป็นการปรับปรุงด้านโครงสร้างพื้นฐานทางเทคนิค? เช่น</p>
<ul>
<li>ปรับเซิร์ฟเวอร์ให้มี scalability</li>
<li>ปรับซอฟต์แวร์</li>
<li>เปลี่ยนสถาปัตยกรรมเป็น decentralized</li>
<li>ปรับขนาดของท่อเน็ตเวิร์ค</li>
</ul>
<p>หรือ เราจะมีวิธีทางอื่นๆ ที่แตกต่างไปจากนั้น เช่น วิธีการทางจิตวิทยาหรือสังคมศึกษา วิจัยดูว่าเมื่อมนุษย์ต้องการข้อมูล (แล้วดู empower by internet) จะมีพฤติกรรมที่ต่างออกไปจากปกติอย่างไร?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Working with Application Templates - Sharepoint 2007]]></title>
<link>http://meandmybigip.wordpress.com/2009/06/23/working-with-templates/</link>
<pubDate>Tue, 23 Jun 2009 13:40:36 +0000</pubDate>
<dc:creator>MeAndMyBIGIP</dc:creator>
<guid>http://meandmybigip.wordpress.com/2009/06/23/working-with-templates/</guid>
<description><![CDATA[A big feature of the 10.x upgrade is the Application Template &#8220;wizard.&#8221;   BIGIP has thei]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>A big feature of the 10.x upgrade is the Application Template &#8220;wizard.&#8221;   BIGIP has their deployment guides, which walk you through creating all of the configuration objects you need to get set up and running, but they aren&#8217;t always the clearest map through the woods.  As <a href="http://devcentral.f5.com/weblogs/dctv/archive/2009/04/09/v.10---jeff-talks-app-templates-with-those-in-the.aspx" target="_blank">discussed </a>on the DevCentral site, the wizard/survey/form takes a lot of the page-turning out of the mix, and presents everything in a much clearer manner (as in all on one page, fill-in-the-blanks-and-click-go).</p>
<p>Here&#8217;s my take on using the Microsoft Sharepoint 2007 Application Template, what you need, and what it makes for you.</p>
<p><!--more--></p>
<p>Prerequisites:</p>
<ul>
<li>172.16.1.5 – Externally visible IP address</li>
<li>172.16.1.10, .11, .12 – Web front-end HTTP servers</li>
<li>SSL Certificate and Key as discussed <a href="../2009/06/18/ssl-certs-from-iis/">previously</a> (<a href="https://support.f5.com/kb/en-us/solutions/public/6000/500/sol6549.html">SOL 6549</a> on tech.f5.com)</li>
</ul>
<p>Steps to create a new configuration to front a Microsoft SharePoint 2007 system:</p>
<ol>
<li>Logon to the Management Web Console, expand <strong>Templates and Wizards</strong>, select <strong>Templates</strong>, and then Microsoft SharePoint<br />
<img class="aligncenter size-large wp-image-78" title="1" src="http://meandmybigip.wordpress.com/files/2009/06/1.jpg?w=1024" alt="1" width="1024" height="488" /></li>
<li>Provide a familiar prefix for the template group, in this case <strong><em>SharepointDemo</em></strong>, and the IP address that will serve the URL, in this case 172.16.1.5<br />
<img class="aligncenter size-full wp-image-79" title="2" src="http://meandmybigip.wordpress.com/files/2009/06/2.jpg" alt="2" width="655" height="354" /></li>
<li>Scroll down to the <strong>SSL Offload Questions</strong> section to elect to offload SSL form the SharePoint Servers, and to select the appropriate certificate and key<br />
<img class="aligncenter size-full wp-image-80" title="3" src="http://meandmybigip.wordpress.com/files/2009/06/3.jpg" alt="3" width="655" height="334" /></li>
<li>Scroll down to the <strong>Load Balancing Questions</strong> to select your balancing method, and to add the WFE server IP addresses (<em>Note</em>: if you are offloading SSL on the BIGIP, use port 80 to pass the traffic to the back-end servers), and to provide the health check response string<br />
<img class="aligncenter size-full wp-image-81" title="4" src="http://meandmybigip.wordpress.com/files/2009/06/4.jpg" alt="4" width="655" height="425" /></li>
<li>Scroll down to choose WAN or LAN traffic, and click <strong><em>Finished<br />
<img class="aligncenter size-full wp-image-82" title="5" src="http://meandmybigip.wordpress.com/files/2009/06/5.jpg" alt="5" width="655" height="237" /></em></strong></li>
<li>You’ll now see a list of the objects the template has created and configured for this Virtual Server instance<br />
<img class="aligncenter size-large wp-image-83" title="6" src="http://meandmybigip.wordpress.com/files/2009/06/6.jpg?w=1024" alt="6" width="1024" height="561" /></li>
</ol>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Double the Bandwidth, Double the Fun?]]></title>
<link>http://robulack.wordpress.com/2009/06/19/double-the-bandwidth-double-the-fun/</link>
<pubDate>Fri, 19 Jun 2009 18:56:23 +0000</pubDate>
<dc:creator>Andrew Robulack</dc:creator>
<guid>http://robulack.wordpress.com/2009/06/19/double-the-bandwidth-double-the-fun/</guid>
<description><![CDATA[I took a rather unusual step further into geekdom today: I picked up a second cable modem for my hou]]></description>
<content:encoded><![CDATA[I took a rather unusual step further into geekdom today: I picked up a second cable modem for my hou]]></content:encoded>
</item>
<item>
<title><![CDATA[Merlin 0.5 beta released today]]></title>
<link>http://theopenmonologue.wordpress.com/2009/06/17/merlin-0-5-beta-released-today/</link>
<pubDate>Wed, 17 Jun 2009 13:24:37 +0000</pubDate>
<dc:creator>theopenmonologue</dc:creator>
<guid>http://theopenmonologue.wordpress.com/2009/06/17/merlin-0-5-beta-released-today/</guid>
<description><![CDATA[Merlin, or Module for Effortless Redundancy and Load balancing In Nagios, has reached beta stage! Th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a title="Merlin project" href="http://www.op5.org/community/projects/merlin">Merlin</a>, or Module for Effortless Redundancy and Load balancing In Nagios, has reached beta stage! The Merlin project was initially started to create an easy way to set up distributed Nagios installations, allowing Nagios processes to exchange information directly as an alternative to the <a href="http://nagios.sourceforge.net/docs/3_0/distributed.html">standard nagios way</a> using NSCA.</p>
<p>The code has been available in our <a title="Git code library" href="http://git.op5.org/git/">code library</a> for some time and we have received a lot of comments and input as well as patches, speeding the project along. We are very grateful to everyone and anyone helping out and testing the module.</p>
<p>Download the Merlin beta 0.5 <a title="Download merlin beta" href="http://www.op5.org/community/projects/merlin#merlin_download">here</a> or take a look at the code <a title="download merlin code" href="http://git.op5.org/git/">here</a>.</p>
<p>BTW</p>
<p>We currently dont have any logo for the projet, but it is something we would like to have when the project reaches release. Do you like design? Whant to contribute to the project? Feel free to send your suggestion to klas.bernehjalt_at_op5.com</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
