Its easy as busy as we stay during a year to feel overwhelmed and think that you aren't accomplishing as much as you would like to. In preparation for my Annual Review I had to prepare and Accomplishments document to present to my manager. Preparing the document made me feel better ... it hasn't been a bad year after all :) Read below to see into a year of my professional life:
Accomplishments --
As a Systems Architect
Created the Software Architecture, Data Architecture, and Infrastructure Architecture to enable the TeleVox Notifications Platform to progress toward the goal to support 10X growth while upgrading to a new overall Platform Architecture utilizing new technologies and hardware to ensure Customer Trust in our ability to deliver their notifications and never miss a call (currently over 5 million distinct notification per week and growing). Championed and led strategic initiatives centered on platform reliability and scale, capacity and port expansion, business intelligence, enterprise application integration, business process improvement, customer data centralization, and Notifications Platform enhancement to support growth and position the company for agility in the future.
Software Architecture
Service Oriented Architecture
Designed an architecture to expose WCF and Web Services through a load balanced Services Tier to enable service composition to define business processes. The Services Tier exposes business functionality to processes and applications through a reusable component library that is maintained and versioned centrally within servers in the farm. The goal of this is to speed the development and deployment of future development initiatives through reuse and will help prevent component versioning issues across multiple tiers and servers within our enterprise.
This architecture also integrates WCF and Web Services with Microsoft UDDI 3.0 to enable service virtualization. Service Virtualization will allow us to maintain service configuration information in a central repository that is discoverable at runtime instead of being hard coded in multiple app.config and web.config files scattered throughout the enterprise.
Enterprise Service Bus
Designed an Architectural approach to utilize BizTalk 2009 and Microsoft ESB ToolKit 2.0 to enable BizTalk 2009 to serve as an Enterprise Service Bus that is at the core of our emerging redesigned Notifications Platform. Utilizing BizTalk in a middleware bus architecture will enable cross process data visibility and enrichment and will enable a development model where subsystems and services can be connected to the bus’s data flow in a decoupled asynchronous manner. The bus’s itinerary based messaging allows for the composition of multiple processes and services into a business or process workflow that can be modified based on changing business requirements at the message routing level dynamically. Also, the Pub/Sub architecture behind BizTalk will allow the company to develop solutions based on Event Driven Architectures and remove the multitude of legacy heavy polling based applications that we have written to try and chain business processes across multiple tasks, executables, and servers.
Designed and specified the requirements for a two node BizTalk Cluster to enable both HTTP load balancing and host clustering to enable high availability and failover. I have developed near term and future looking designs to horizontally scale the current two node ESB to support near and long term projected growth.
Designed and specified requirements for three SQL 2008 database clusters to support the BizTalk OLTP and DSS/OLAP databases in a high availability manner.
Data Architecture
Physical Data Architecture
Cluster Design
Specified the Architecture, design and requirements for three new Windows 2008/ SQL 2008 64-Bit Clusters to support anticipated and ongoing Notifications Platform reliability and performance needs. These new SQL Clusters are dedicated to supporting OLTP, DSS/Reporting, and OLAP respectively. The new SQL Clusters will enable us to migrate high transactional, decision support, and reporting related tables from our web site supporting customer/product databases to a more appropriate cluster and will increase the responsiveness of Product Websites.
Storage Recommendations and Requirements (SAN)
Specified LUN Size, Data and Transaction File location, and RAID Levels for the new databases being deployed in the VXML Project. I worked with our DBA to ensure the accuracy of these upfront requirements and to share the vision for the ongoing Data Architecture so that upcoming storage requirements could be anticipated and delivered.
Logical Data Architecture
Database segmentation across functionality types (OLTP, DSS, OLAP)
Began the implementation of a strategy to move away from the current monolithic SQL Server design that places databases with different user targets and transactional focus on the same physical database cluster. The ongoing Data Architecture will organize databases according to type within separate physical database clusters (Transactional, Decision Support, Report, and Business Intelligence). This segmentation by type will allow specific database types and database hardware and clusters to be tuned for maximum performance and will provide the hardware infrastructure to support growing capacity and enable horizontal scalability across cluster nodes. Segmenting the databases across purpose specific clusters will also allow for a better security model ensuring that PHI and private information can be stored and accessed securely.
Business Intelligence Strategy
Began the implementation of a BI strategy that will leverage BizTalk’s Business Activity Monitoring subsystem to enable OLAP Data warehouse enrichment based on in flight messages moving through our ESB. OLAP based storage of data flowing through our business processes will enrich the Company’s ability to make educated decisions on platform and customer trends and will allow the systems within the Platform to make intelligent runtime decisions during processing.
Data Centralization Strategy
Customer Key Synchronization
Worked across departments to design a strategy to centralize our customer data across physical data boundries. The Customer Key Synchronization project deliverable allows us to identify our customers across both product and backend systems (CRM, ERP, Accounting, and Billing) based on a matrix of key information that links the customer’s identity across the disparate platforms. This common SQL structure and Services model will allow for data synchronization and customer visibility into data events and business processes that occur from the creation of the customer in our CRM to the accounting and billing process. This ability to understand who our customer is across platforms will feed improvement initiatives around implementation, support, reporting, business analysis, and business intelligence.
Customer Profile Data Store
Designed the data architecture for a Common Customer data store that will centralize the Customer Profile and Preference data at a higher level of abstraction than the current siloed domain data structures within our Products and Backend Systems. Taking this level of abstraction will position us to enable future business intelligence, reporting, and cross datacenter notifications processing initiatives.
Infrastructure Architecture
Designed the Infrastructure Architecture and defined specifications to support several new Platform Tiers. I specified the hardware, networking, configuration and storage requirements to deliver a load balanced Services Tier, a Clustered BizTalk based Middleware Tier, and three new database clusters.
Enterprise Application Integration Strategy (EAI)
Backend and LOB Systems Integration
Developed a strategy for linking our backend systems (CRM, ERP, and Billing) so that business events and processes can trigger data synchronization that can flow in a circular fashion between the systems. This will be accomplished using BizTalk in a Hub and Spoke Architecture to connect the systems and provide a data gateway between the various data stores to allow critical customer data to remain identical between the disparate systems.
Service Virtualization Strategy
Integrated UDDI 3.0 to enable runtime discovery of WCF and ASMX Service URI and service metadata. Utilizing the UDDI 3.0 platform enable our company to remove the reliance on application configuration files for storing this information and allowed our applications and processes to discover the information needed to interact with our services library dynamically. This allows for portability for our services and multiple service reconfiguration based on runtime discovery.
As a Lead Developer/Team Lead
Lead the Platform design and development efforts for the HouseCalls Redesign VXML Project. Mentored team members in Service Oriented design, Object Oriented design, use of Design Patterns, Best Practices for coding and naming conventions, and alignment with the overall Platform Architecture goals.
BizTalk Development
Designed and developed many of the core BizTalk Orchestrations that are involved in the VXML Calling process. Mentored other team members in the development of other orchestrations. Designed the physical architecture for high availability deployment of BizTalk applications.
Core Services Development
Continued development of the Core Services that manage our frameworks and expose enterprise resources through managed best practices based implementation.
Core Components Development
Continued development of the Core Components that manage our frameworks and expose enterprise resources through managed best practices based implementation.
Logging Framework
Expanded the Logging Framework that I developed for the Project Genesis deployment to support asynchronous communications through MSMQ with the Logging Database.
Configuration Framework
Designed and developed a Configuration Framework composed of WCF Services, .Net Component libraries, and a new Database to allow for application and process configuration to be stored a managed centrally in a database. This framework removes the need to update configuration files across multiple services and servers when a configuration value needs to be added, removed, or modified.
As a Systems/Infrastructure resource
Production and PreProd Infrastructure deployment and configuration for VXML Project
Worked independently and with Service Delivery and EIT to build out the hardware infrastructure in the Pre Prod and Production environments to support the VXML Project. I configured VMWare virtual machines, Windows 2008 clusters, administered databases, created Active Directory OU Structures, accounts and groups, created DNS entries for services, and configured Operating System and Server Roles. I also defined the overall Architecture, configuration, and security model for these environments to reliably support the VXML Integration Project application deployment.
Thursday, April 29, 2010
Tuesday, April 27, 2010
ESB Toolkit 2.0 Multi-Server Installation Part 1 - Installing Microsoft UDDI 3.0 Services
Overview
In our environment we needed to load balance our UDDI Web Interface across a server farm. Outlined below are the steps that we needed to take to configure UDDI for both our Web Farm (Services Tier) and Database Servers.
Physical View Diagram
All service tier server operating systems are configured identically with Windows Server 2008 Standard.Detailed requirements and steps are listed below.
In our environment we needed to load balance our UDDI Web Interface across a server farm. Outlined below are the steps that we needed to take to configure UDDI for both our Web Farm (Services Tier) and Database Servers.
Physical View Diagram
All service tier server operating systems are configured identically with Windows Server 2008 Standard.Detailed requirements and steps are listed below.
Install UDDI 3.0 on Database cluster nodes | |
Install UDDI 3.0 on database cluster nodes | Install on all cluster nodes supporting the UDDI3 database named instance |
Run setup | From the BizTalk 2009 Media |
Select Install Microsoft UDDI Services on this computer | |
Select the following components --> Database Component Validate successful installation Do NOT launch Microsoft UDDI services configuration at this time. | |
Install UDDI Patch KB975684 Validate successful installation | |
Configure UDDI 3.0 on primary database cluster node | |
Configure UDDI 3.0 on primary database cluster node | Perform this step on the primary node hosting the named instance that will support the UDDI database. |
Select UDDI Services Configuration | |
Select Custom configuration Enter database\instance information Enter service account and password information Select Configure | |
Select Enable UDDI Services Database Component Select the instance hosting the UDDI3 database from SQL Server Instance drop-down Select Database Data Files Location Select Database Log Files Location Uncheck Require SSL for publication to this UDDI Services site Select Apply Configuration Validate successful configuration | |
Configure UDDI 3.0 on passive database cluster nodes | |
Configure UDDI 3.0 on passive database cluster nodes | Perform this step on the passive nodes hosting the named instance that will support the UDDI database. |
Select UDDI Services Configuration | |
Select Custom configuration Enter database\instance information Enter service account and password information Select Configure | |
Select Enable UDDI Services Database Component Select the instance hosting the UDDI3 database from the SQL Server Instance drop-down Select Apply Configuration Validate successful configuration | |
NOTE: After selecting the named instance supporting the previously configured UDDI database, the file locations do not get updated. This does not appear to cause an issue and does not create the folder structure listed. | |
Configure DNS on domain controller | |
Configure DNS on domain controller | |
Create DNS Host (A) record for UDDI FQDN.This will eventually point at the F5 VIP | |
OS configuration on services tier | |
OS configuration on services tier | |
Ensure all operating system patches have been applied | All services tier servers Perform this before and after installation to ensure new components added during the installation process get patched appropriately |
Install IIS | |
Install IIS 7 | All services tier servers |
Select Add Roles from Server Manager | |
Select Web Server (IIS) | |
Select Add Required Features | |
Add the following Role Services:
Accept the Add Required Role Services dialog Validate successful installation | |
Install Application Server Role | |
Install Application Server | All services tier servers |
Select Add Roles from Server Manager | |
Select Application Server | |
Add the following Role Services: Windows Process Activation Service Support Accept the Add Required Role Services dialog This will automatically add HTTP Activation Message Queuing Activation TCP Activation Named Pipes Activation Add Incoming Remote Transactions Outgoing Remote Transactions Validate successful installation | |
Install Prerequisite | |
Install Prerequisite | All services tier servers |
Download and install the Microsoft Visual C++ 2008 SP1 Redistributable Package for x64 | |
Install UDDI 3.0 on services tier | |
Install UDDI 3.0 on services tier | All services tier servers |
Run setup | From the BizTalk 2009 Installation Media |
Select Install Microsoft UDDI Services on this computer | |
Select the following components Administration Tools Web Application Validate successful installation Do NOT launch Microsoft UDDI services configuration at this time. | |
Install UDDI Patch KB975684 Validate successful installation | |
Configure UDDI 3.0 on services tier | |
Configure UDDI 3.0 on services tier | Configuration steps for the first services tier computer differs from configuration steps required for the remaining services tier servers |
Configure UDDI 3.0 on first services tier servers | |
Configure UDDI 3.0 on first services tier servers | First services tier servers |
Select UDDI Services Configuration on first services tier node | |
Select Custom configuration Enter database\instance information Enter service account and password information Select Configure | |
Select Enable UDDI Services Web Application Ensure UDDI database is correct Ensure Web application account is correct Select Self-register this site’s services in the UDDI registry and Active Directory Select Apply Configuration Validate successful configuration This will add the web application account into the database security users for UDDI3 database | |
Configure UDDI 3.0 on remaining services tier nodes | |
Configure UDDI 3.0 on remaining services tier nodes | Remaining services tier servers |
Select UDDI Services Configuration on remaining services tier nodes | |
Select Custom configuration Enter database\instance information Enter service account and password information Select Configure | |
Select Enable UDDI Services Web Application Notice informational warning. Self-registration should only be performed on the first services tier server, not subsequent servers | |
Validate informational warning matches description to the right | |
Unselect Self-register this site’s services in the UDDI registry and Active Directory Select Apply Configuration Validate successful configuration | |
Validate UDDI 3.0 on services tier | |
Validate UDDI 3.0 on services tier | |
Run UDDI Services Console | |
Validate the service tier servers are listed under the UDDI console | |
Ensure services tier servers respond to web requests to the UDDI site | |
Subscribe to:
Posts (Atom)