Thursday, April 29, 2010

Not A Bad Year Afterall

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.

No comments:

Post a Comment