<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Allan Wolfe – Architecture</title>
    <link>/technology/opensystems/architecture/</link>
    <description>Recent content in Architecture on Allan Wolfe</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Thu, 15 Feb 2018 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="/technology/opensystems/architecture/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Technology: Primal Philosophy</title>
      <link>/technology/opensystems/architecture/primal-philosophy/</link>
      <pubDate>Thu, 15 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>/technology/opensystems/architecture/primal-philosophy/</guid>
      <description>
        
        
        &lt;hr&gt;
&lt;h4 id=&#34;introduction&#34;&gt;Introduction&lt;/h4&gt;
&lt;p&gt;&lt;a&gt;&lt;img src=&#34;/opensystems/images/creation-of-man.jpg&#34; class=&#34;float-right&#34; style=&#34;border:2px solid gray;margin-left:15px;&#34; alt=&#34;NAS Storage Rack&#34;/&gt;&lt;/a&gt;Back in the glory days of Sun Microsystem, they were visionary at that time when the Ethernet and TCP/IP was emerging as the universal network topology and protocol standard.  Sun adopted the marketing slogan &#34;the network is the computer&#34; and wisely so.  That is the way I have viewed computing from the time I started architecting networks of computers.  It isn&#39;t about a standalone machine performing a specific localized task only, rather it is a cooperative service that ultimately satisfies a human need as it relates to a service and its related data.  &lt;/p&gt;
&lt;p&gt;Through the years, I have been successful in tailoring an architecture that required few administrators to efficiently administrate hundreds of computers running on multiple hardware and OS platforms serving both high-end technical, business end user communities, desktop and server incorporating multiple platforms.  I have found three areas that require a standard for administration (1) OS configuration (2) separate off data onto devices that are built for that purpose of managing data (i.e. NAS), developing a taxonomy that support its usage and (3) network topology.&lt;/p&gt;
&lt;h4 id=&#34;os-and-software-management&#34;&gt;OS and Software Management&lt;/h4&gt;
&lt;p&gt;&lt;a&gt;&lt;img src=&#34;/opensystems/images/gear.png&#34; class=&#34;float-left&#34; style=&#34;border:2px solid gray;margin-right:15px;&#34; alt=&#34;OS Configuration&#34;/&gt;Ninety five percent of the OS installation should be normalized into a standard set of configuration files that can be incorporated into a provisioning system such as Red Hat Satellite for Linux.  Separating off the data onto specific data appliances frees up backups being performed on fewer machines and do not require kernel tweaks that satisfies both the application service running on the server versus handling backups.  Considering that application software doesn&#39;t rely on a local registery as does MS Windows, the application software itself can be delivered to multiple hosts from a network share, thus making any given host more fault tolerant. &lt;/p&gt;
&lt;p&gt;The argument for &amp;ldquo;installation per host&amp;rdquo; is that if there is an issue with the installation on the network share, all hosts suffer.  This is a bit of a fallacy.  While it is true that if there is an issue, it breaks everywhere, but then again, you fix an issue in one place, you fix it everywhere.  The ability to extend the enterprise-wide installation with minimal effort, maximizing your ability to administrate it outweighs the negative for breaking it everywhere.  It takes discipline to methodically maintain a centralized software installation.&lt;/p&gt;
&lt;h4 id=&#34;data-management&#34;&gt;Data Management&lt;/h4&gt;
&lt;p&gt;&lt;a&gt;&lt;img src=&#34;/opensystems/images/data-management.jpg&#34; class=&#34;float-right&#34; style=&#34;border:2px solid gray;margin-left:15px;&#34; alt=&#34;Data Management&#34;/&gt;Data should be stored on NAS (network attached storage) appliances as they are suited toward optimal data delivery across a network and gives a central source for managing it.  Anymore, most data is delivered across a network.  NAS appliances are commonly used (such as Netapp) to deliver a &#34;data share&#34; using SMB, NFS or SAN over FCoE protocols.  &lt;/p&gt;
&lt;p&gt;In the 1990s, the argument against using an ethernet network for delivering data was due to bandwidth and fear for what would happen if the network goes down.  Even back then, if you lost the network, the network was held together by backend services for identity management and DNS.  In the 21st century, I always chose to install two separate network cards (at least 2 ports each) in each server. I configured at least one port per card together for a trunked pair.  One pair would service a data network and the other for frontend/user access.  This worked well over the years.  Virtualizing/trunking multiple network cards provide a fault tolerant interface whether for user or data access, though I have never seen a network card go bad.&lt;/p&gt;
&lt;p&gt;There are a handful of application software that requires SAN storage, though I would avoid SAN unless absolutely required. You are limited by the filesystem laid on the SAN volume and probably have to offload management of the data from the appliance serving the volume. Netapp has a &lt;a href=&#34;https://www.netapp.com/data-storage/what-is-san-storage-area-network/&#34;&gt;good article&lt;/a&gt; on SAN vs. NAS.&lt;/p&gt;
&lt;h4 id=&#34;business-continuancedisaster-recovery-and-virtualization&#34;&gt;Business Continuance/Disaster Recovery and Virtualization&lt;/h4&gt;
&lt;p&gt;&lt;a&gt;&lt;img src=&#34;/opensystems/images/disaster-recovery.jpg&#34; class=&#34;float-left&#34; style=&#34;border:2px solid gray;margin-right:15px;&#34; alt=&#34;Disaster Recovery&#34;/&gt;There is the subject of business continuance and disaster recovery that plays into this equation.  Network virtualization is a term that includes network switches, network adapters, load balancers, virtual LAN, virtual machines and remote access solutions. Virtualization is key toward providing support for fault tolerance inside a given data center as well as key toward providing effective disaster recovery.  Virtualization across data centers simplify recovery when a single data center fails.  All this requires planning, providing replication of data and procedures (automated or not) to swing a service across data centers.  Cloud services provide a fault tolerant service delivery as a base offering.&lt;/p&gt;
&lt;p&gt;The use of virtual machines is common place these days.  I&amp;rsquo;ve been amused in the past at the administrative practice by Windows administrators who would deploy really small servers that only provided a single service.  When they discovered virtualization, they adhered to the same paradigm, but providing a single service per virtual machine.  Working with &amp;ldquo;the big iron&amp;rdquo;, services would be served off of a single server instance where those services required roughly the same tuning requirements and utilization and performance was monitored.  With good configuration management, extending capacity was fairly simple.&lt;/p&gt;
&lt;p&gt;Work has been done to virtualize the network topology so that you can deploy hosts on the same network world-wide.  For me, this is nirvana for supporting a disaster recovery plan, since a service or virtual host can be moved across to another host, no matter the physical network the hypervisor attached without having to reconfigure its network configuration and host naming service entry.&lt;/p&gt;
&lt;p&gt;Virtual networks (e.g. Cisco Easy Virtual Network - a level 3 virtualization) provides the abstraction layer where network segmentation can go wide, meaning span multiple physical networks providing larger network segments across data centers.  Having a &amp;ldquo;super network&amp;rdquo;, disaster recovery becomes much simpler as the IP address doesn&amp;rsquo;t have to be reconfigured and reported to related services such as DNS is needed.&lt;/p&gt;
&lt;h4 id=&#34;cloud-computing&#34;&gt;Cloud Computing&lt;/h4&gt;
&lt;p&gt;&lt;a&gt;&lt;img src=&#34;/opensystems/images/cloud-computing.jpg&#34; class=&#34;float-right&#34; style=&#34;border:2px solid gray;margin-left:15px;&#34; alt=&#34;Cloud Computing&#34;/&gt; My last job as a systems architect, I had the vision for creating a private cloud, with the goal for moving most hypervisors and virtual machines into a private cloud.  Whether administering a private or public cloud, one needs a toolset for managing a &#34;cloud&#34;.  The term &#34;cloud&#34; was a favorite buzzword 10 years ago that was not a definitive term.  For IT management it usually meant something like &#34;I have a problem that would be easier to shove into the cloud and thus solve the problem&#34;.  (Sounded like the out sourcing initiatives in the 1990s).  Any problem that exists doesn&#39;t go away.  If anything the ability to manage a network just became more complicated.  &lt;/p&gt;
&lt;p&gt;There has been various proprietary software solutions that allows the administrator to address part of what is involved with managing a cloud whether for standing up a virtual host or possibly carving out data space or configure the network.  OpenStack looks to be hardware and OS agnostic for managing a private and public cloud environment.  I have no experience here, but looks to be a solution that the hardware manufacturers and OS developers have built plugins as well as integration with the major public cloud providers.&lt;/p&gt;
&lt;p&gt;Having experience working in a IaaS/SaaS solution, utilizing a public cloud is only effective with small data.  Before initiating a public cloud contract, work out an exit plan.  If you have a large amount of data to move, you likely will not be able to push it across the wire.  There needs to be a plan in place, possibly a contractural term to being able to physically retrieve the data.  Most companies are anxious to enter into a cloud arrangement but have not planned for when they wish to exit.&lt;/p&gt;
&lt;h4 id=&#34;enterprise-wide-management&#34;&gt;Enterprise-Wide Management&lt;/h4&gt;
&lt;p&gt;&lt;a&gt;&lt;img src=&#34;/opensystems/images/pyramid.png&#34; class=&#34;float-left&#34; style=&#34;border:2px solid gray;margin-right:15px;&#34; alt=&#34;Enterprise-Wide Management&#34;/&gt; There is the old adage that two things are certain in life - death and taxes.  Where humans have made something, whether physical or abstract, one thing is certain - it is not perfect and will likely fail at some time in the future.  Network monitoring is required so the administrators know when a system has failed.  Stages for implementation should include server up/down monitoring followed by work with adopting algorythms for detecting when a service is no longer available.  From there, performance metrics can then be collected and work to aggregate those metrics and threshholds into a form that provides support for capacity planning and measure whether critical success factors are met or not.&lt;/p&gt;
&lt;p&gt;Another thought toward capacity management. Depending on the criticality of the service offering,  the environment should provide for test/dev versus production environments.  Some services under continual (e.g. waterfall) development could require separating out test and dev environments  in order to stage for a production push.&lt;/p&gt;
&lt;p&gt;Provisioning tools are needed to perform quick, consistent installations whether loading an OS or enabling a software service.  At a minimum, shell scripts are needed to perform the low-level configuration.  At a higher level, software frameworks like OpenStack and Red Hat Satellite are needed to manage a server farm for more than a handful of servers.&lt;/p&gt;
&lt;h4 id=&#34;remote-access&#34;&gt;Remote Access&lt;/h4&gt;
&lt;p&gt;&lt;a&gt;&lt;img src=&#34;/opensystems/images/remote-access.jpg&#34; class=&#34;float-right&#34; style=&#34;border:2px solid gray;margin-left:15px;&#34; alt=&#34;Remote Access&#34;/&gt;Remote access has been around in various forms for the past 20+ years and is becoming a critical function today.  VPN (virtual private network) is the term associated with providing secure packet transmission over the extranet.  While a secure transport is needed, outside of public cloud services, there is the need for an edge service that provides the corporate user environment &#34;as if&#34; they were inside the office.  &lt;/p&gt;
&lt;p&gt;Having worked in a company that had high-end graphical workstations used by technical users requiring graphics virtualization and high data performance, we worked with a couple solutions that delivered a remote desktop.  &lt;a href=&#34;https://www.nomachine.com/&#34;&gt;NoMachine&lt;/a&gt; worked well but we migrated toward &lt;a href=&#34;https://www.nice-software.com/&#34;&gt;Nice Software&lt;/a&gt; (now an Amazon Web Service company).  At the time we were looking at not only providing a remote access solution, but also a replacement for the expensive desktop workstation while providing larger pipes in the data center to the data farm.  Nice was advantageous for the end user in that would start an interactive process on the graphics server farm as a remote application from their desk, suspend the session while their process ran, and remotely connect again to check on that process from home.&lt;/p&gt;
&lt;h4 id=&#34;summary&#34;&gt;Summary&lt;/h4&gt;
&lt;p&gt;When correctly architected, you create a network of computers that are consistently deployed and easily recreated should the need arise.  More importantly, in managing multiple administrators, where a defined architecture exists and understood and supported by all, the efficiency gained allows the admin to work beyond the daily issues due to inconsistent deployment, promotes positive team dynamics and minimizes tribal knowledge.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Technology: Network Based Administration</title>
      <link>/technology/opensystems/architecture/network-administration/</link>
      <pubDate>Thu, 15 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>/technology/opensystems/architecture/network-administration/</guid>
      <description>
        
        
        &lt;hr&gt;
&lt;h4 id=&#34;configuration-management&#34;&gt;Configuration Management&lt;/h4&gt;
&lt;p&gt;Configuration design and definition is at the core of good network architecture.  I have experimented with what configuration elements are important, which should be shared and which should be maintained locally on each host.  Whether an instance is virtual, physical or a container, these concepts apply universally.&lt;/p&gt;
&lt;p&gt;Traditionally, there was a lot of apprehension to share both application and configuration over a network much less share application accessible data.  I guess this comes from either people who cannot think 3 dimensionally or those whose background is solely administrating a Windows network of which the design has morphed from a limited stand-alone host architecture.  Realistically today, if there was no network, we&amp;rsquo;d not be able to do much anyway.  Developing a sustainable architecture surrounding the UNIX/Linux network is efficient and manageable.  Managing security is a separate topic for discussion.&lt;/p&gt;
&lt;h4 id=&#34;identity-management-and-unified-information-reference-services&#34;&gt;Identity Management and Unified Information Reference Services&lt;/h4&gt;
&lt;p&gt;The first step in managing a network of open system computers is to establish a federated name service with the purpose of managing user accounts and groups as well as provide a common reference repository for other information.  I have leveraged NIS, NIS+ and LDAP as name service through the years.  I favor LDAP since the directory server provides a better system for redundancy and service delivery, particularly on a global network.  MS Windows Active Directory can be made to work on UNIX/Linux hosts by enabling SSL, make some security rule changes and adding the schema supporting open systems.  The downside to Active Directory compared to a Netscape based directory service is managing the schema.  On Active Directory, once the schema has been extended, you cannot rescind the schema unless you rebuild the entire installation from scratch.  To date, I have yet to find another standardized directory service that will accomodate the deviations that Active Directory provide an MS network.&lt;/p&gt;
&lt;p&gt;In a shop where there are multiple flavors of open systems, there have been ways that I have leveraged automounter to store binaries that are shared on a given OS platform/version.  Leveraging on NAS storage such as Netapp, replication can be performed across administrative centers that can be used universally and maintained from one host.  For the 5 hosts I maintain at home, I have found TruNAS Core (formerly FreeNAS) to be a good opensource solution to deliver shared data to my Linux and OSX hosts.&lt;/p&gt;
&lt;h4 id=&#34;common-enterprise-wide-file-system-taxonomy&#34;&gt;Common Enterprise-Wide File System Taxonomy&lt;/h4&gt;
&lt;p&gt;The most cumbersome activity toward setting up a holistic network is deciding on what utilities and software is to be shared across the network from a single source.  Depending on the flavor, the path to the binary will be different.  Further, the version won&amp;rsquo;t be consistent between OS versions or platform.  Having a common share to provide for scripting languages such as Perl or Python help to provide a single path to reference in scripting, including plugin inclusion.  It requires some knowledge on how to compile and install opensource software.  More architectural discussion is included in the article &lt;strong&gt;User Profile and Environment&lt;/strong&gt; over how to manage the same look and feel though different over the network.&lt;/p&gt;
&lt;p&gt;Along with managing application software across a network, logically the user home directory has to be shared from a NAS.  Since the user profile is stored in the home directory, it has to be standardized generically to function on all platforms and possibly versions.  Decisions are needed for ordering the PATH and whether structure is needed in the profile to extend functionality to provide for user customizations or local versus global network environments.  At a minimum, the stock user profile must be unified so that it can be managed consistently over all the user community, possibly with the exception of application software related administration accounts that are specific to the installation of a single application.&lt;/p&gt;
&lt;h4 id=&#34;document-document-document&#34;&gt;Document, Document, Document!&lt;/h4&gt;
&lt;p&gt;Lastly, it is important to document architecture and set standards for maintaining a holistic network as well as provide a guide to all administrators that will provide consistency in practice.&lt;/p&gt;
&lt;p&gt;These links below provide more detail toward what I have proven in architecting and deployment of a consistent network of open systems.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
