Let's talk about your project. Contact Our Team!

Information Architecture

information architecture hero image Photo by Christina Morillo from PexelsToday, data is one of your company’s most significant assets. How to store, secure, and provide access to data are vital pieces of every company’s information architecture puzzle. This puzzle has two crucial parts – Cloud Transformation and Application Modernization. Cloud Transformation migrates data from localized or centralized data centers to the cloud. Application modernization transforms legacy systems such as accounting or Human Resources systems to run more efficiently and securely in the cloud.


Cloud Transformation

Google cloud image

In Driving Digital Business with App and Cloud Transformation, one of the best whitepapers we’ve read, WTE Partner VMware  (linked in Resources), explains how the cloud is and will change Information Technology.

Cloud has already redefined the relationship between IT and business, accelerating the delivery of new services and bringing unprecedented innovation to developers. It (the cloud) has forever changed how business services transform inspiration into reality and how we unlock insights from a vast expanse of data. Cloud helps us move faster. It is a true accelerant for innovation.

Traditional computing can’t manage the growing river of data every business must process due to bandwidth limitations, latency issues, and network disruptions. As a result, centralized data architecture gives way to decentralized cloud and edge-based computing.

Cloud and Edge Computing

There’s more than one cloud and more than one type of cloud computing. Cloud computing delivers servers, storage, databases, software, and networking over the Internet (“the cloud”) for faster innovation, resource flexibility, and scale.

Public clouds are created from Information Technology (IT) not owned by the end users. Alibaba Cloud, Amazon Web Services (AWS), Google Cloud, IBM Cloud and Microsoft Azure are a few of the largest public cloud providers. Private clouds are usually dedicated to a single end user and lock cloud computing services behind a firewall.

Robust public and private cloud computing services are adding new life to an old concept – remote computing. Rather than rely on a single centralized location, companies with remote or branch offices found moving computing services and resources at or near those locations increased data reliability and timely processing. Edge computing updates an old idea using the cloud to push processing closer to data and end users.

75% of business data will be created outside of centralized data centers by 2025.
- Gartner

What is Multi-Cloud?

Many WTE customers use more than one cloud. For example, accounting may be on one cloud while Customer Relationship Management (CRM) is on another. Each cloud provider has its operating stack, services, and toolsets. Amazon’s functionality doesn’t extend to other cloud platforms such as Google or Microsoft, so information architecture in a multi-cloud era comes with new IT challenges.

  • Application Environment
    Organizations need to support growing application complexity from modern (i.e. cloud enabled) and legacy (use of old coding languages, frameworks, and usually not cloud enabled)applications.

  • Security
    Networking data across clouds is complex and can contribute to holes in security, but multi-cloud IT environments is where we are headed because one cloud may go down but two clouds going down at the same time would be like winning the lottery as you were struck by lightning.

  • Efficiency
    The lack of multi-cloud infrastructure increases costs while reducing security.

  • Distributed Workforce
    Clouds provide choice, flexibility, and a positive, streamlined user experience for an increasingly remote workforce when more data and people are outside a company’s network creates design, security, and integration challenges.

What are Hybrid Clouds?

As we shared in Cloud-to-Cloud Backup – Save Your Data, Brand, and Company, using more than one cloud for data backup increases security and recovery because clouds can go down. Still, two cloud infrastructures going down simultaneously would be exceedingly rare.  WTE likes to create “hybrid clouds” using VMware and other tools.

A hybrid cloud uses tools to create what looks like a single IT environment created from multiple clouds through Local Area Networks (LANs), Wide Area Networks (WANs), Virtual Private Networks (VPNs), and Application Program Interfaces (APIs).  

wte cloud partners image

WTE Cloud Partners

WTE partners with several leading cloud providers including Amazon Web Services, Microsoft, Google, and VMWare. Discover WTE's cloud partners.

Cloud Computing Services

In the future, most WTE customers will use more than one cloud to deliver one of the three primary cloud computing services:

IaaS

Infrastructure-as-a-Service is when a cloud service provider or cloud storage providers such as Amazon or Google manage the servers, network, virtualization, and data storage through connection to the Internet. Users access IaaS through APIs or dashboards, renting needed infrastructure on a pay-as-you-go basis. Depending on the cloud, users manage the operating system, apps, and middleware with the cloud service provider taking care of hardware, networking, hard drives, data storage, and servers; the cloud service provider has managed outages, repairs, and hardware issues.

PaaS

Platform-as-a-Services combines hardware with application software managed by a cloud service provider. Designed for developers and programmers like WTE, PaaS creates a shared cloud platform for application development and management. In addition, our PaaS creates a shared programming environment where WTE programmers can efficiently and securely code.

SaaS

Software-as-a-Service delivers a software application managed by the cloud service provider. SaaS updates, bug fixes, and other maintenance are handled for users by providers, with users connecting to SaaS apps via APIs or dashboards. SaaS eliminates having apps installed locally on each user's computer, promoting group and team software access.

Application Modernization

VMware’s IT leader survey showed 44% of apps were “modern” or able to take advantage of the cloud, APIs, and other microservices making the majority of apps “legacy” or in need of “modernization.” Modernization migrates legacy software applications to current development patterns, paradigms, and platforms to improve business value.

 Applications are modernized for a variety of reasons including:

  • Resources
    Pogramming isn’t a static field so today’s coders may not know how to fix legacy software.

  • Costly
    Legacy applications are harder to maintain, update and link to other “modern” applications.

  • Security
    Legacy applications may represent a higher security risk when/if they are connected to the cloud.

  • Outdated
    Older applications may use older libraries, outdated frameworks, development platforms, operating systems, and databases all components that may not be supported or are being phased out.

This is why VMware’s survey showed an active parallel track with modern apps replacing legacy systems and some legacy software being modernized.

Web Application Development

We tend to build three-tiered web apps:

  • Presentation – web browsers are the first tier.

  • Application - logic using ASP, Node.js, PHP, Python, or Ruby on Rails creates the middle tier.

  • Storageengineered databases form the third tier.

The presentation layer (web browser) sends requests to the application (application logic), and those requests query the database to generate a user interface (UI) and query and update the database (storage).

Sometimes, we build complex web apps requiring more than three tiers, so “n-tiers.” Web applications can have as many tiers as needed, thus “n-tiers.” Complex applications often require breaking the application tier’s business logic into related pieces for speed, efficiency, and better user experiences.

Some may view web applications as a two-tier architecture - with a “smart” client who does the work and queries a “dumb” server or a “dumb” client who relies on “smart” servers (so-called “server-side” architecture). Commonly the client handles the presentation layer, the server has the database (storage), and the application logic is on the client, the server, or pieces of logic exist on both.
services-stool-200.png

All Web Apps Grow Up

Every web application will outgrow its initial tiered structure; we use a three-legged approach to web application development.

  • Lego-Like Code
    We code in blocks with hooks to facilitate connection to other blocks, Applications Program Interfaces (APIs), and microservices.

  • Extreme Programming (XP)
    We use Kent Beck’s pragmatic programming approach outlined in his book Extreme Programming Explained: Embrace Change. XP emphasizes business results and a get-something-started NOW while committing to continual testing and revisions to speed the development of new products, applications, and solutions.

  • Agile Software Development
    We develop new products in partnership with partners, customers, and end-users using self-organizing cross-functional teams.

Since all web applications outgrow their initial structure, we identify and watch specific performance milestones. For example, reaching milestones such as “X” number of simultaneous users or average load times exceed “Y” means an application is, has, or will outgrow its structure.

How WTE Does Web App Dev

We use web application frameworks for rapid application development. A web framework (WF) or web application framework (WAF) standardizes how web apps are developed by automating overhead associated with common activities such as libraries, database access, templating, and session management.

Frameworks reduce errors while improving security. We like frameworks because they create common code and best practices – both important benefits in a distributed coding environment. We write and integrate code for specified business use cases (customer need) into web or web application frameworks.

We like to wear belts and suspenders to keep our web applications pants away from the lions, tigers, and bears who want to harm them. Belts and suspenders places security at the top of our web application development process. We keep our databases in tune, our statistics current, and our powder dry.

Database Engineering

Databases are like children. Initial setup takes time, resources, and money, but adequately tuned databases can reduce those costs while operating at peak performance.

Here is our database tuning punch list:

  • Keep Accurate and Up-to-Date Statistics
    Table statistics help investigate database performance issues. When query results that used to take minutes need more than thirty minutes, IT groups receive “please fix this” tickets from marketing, sales, production, and other departments making SQL queries. Execution plans use accurate and up-to-date statistics to investigate server resources (CPU, memory), disk performance, and improper indexing.

  • Reduce or Eliminate Leading Wildcard Queries
    Since leading wildcard characters (*,?, _, %) and in parameters force full table scans, query result speed may suffer even when there is an indexed field inside the table. Scanning all table data into memory causes CPU usage to spike and may slow other queries.

  • Avoid Select * Wildcard Queries
    Tables with hundreds of columns and millions of rows may have difficulty with “Select *” wildcard asterisk queries because they read data from every column. We prefer “Select Column” statements, especially when tuning a database.
  • Use Constraints
    SQL constraints enforce rules on single or multiple database columns to maintain data integrity, reliability, and accuracy. Conditions like no negative numbers in the employee salary table can also increase query speed and reduce CPU usage. Still, constraints may come with memory costs because constrained data often requires more memory to process.

  • Compare Actual and Estimated Execution Plans
    Comparing estimated and actual execution plans when tuning a SQL database can help identify problems and suggest solutions.

  • Small Changes One at a Time
    WTE likes to make only minor changes to the most expensive operations first because too many changes all at once muddy the waters making it hard to know when or if changes help or hurt database performance.

  • Adjust Indexes
    Sometimes we use a covering index that includes all columns in a query before troubleshooting I/O. Query tuning and index adjustments can significantly impact all areas of database performance.

  • Use AI
    We’ve used artificial intelligence engines to analyze execution plans to know how changes can hurt or help database performance.

  • Compare SQL Statements
    We like to highlight changes in SQL statements by comparing original and optimized reports. We recommend gathering a baseline metric such as logical I/O to compare against as you tune. Don’t make changes until you know your optimized SQL statement includes accurate, current statistics.

  • Automate SQL Database Tuning
    Tuning SQL manually can take a lot of programmer or DBA time. Slow query problem tickets usually result in database fix-tuning. Fix-tuning SQL databases is never the same as tuning for efficiency. Guess which tuning never gets done? Yep, regular database tuning for efficiency is rare. We recommend a combination of automated fixes from a tool and regular (say once a quarter) manual database tuning checkups. Sometimes AI tools such as EverSQL Optimizer or ApexSQL Plan can get sideways, so don’t eliminate manual database performance reviews.

Are you not doing any of these database tuning best practices? You’re not alone, but there is no free lunch. SQL databases are like cars – they need regular maintenance to drive without problems. Don’t change your car’s oil; one day, the unmaintained engine stops working. Your SQL database is the same, so create or let us help you create a SQL database tuning plan so queries fly and your mission-critical engine never stops working.

Resources

Cloud Transformation

Digital First Future VMware whitepaper

Cloud & Edge Computing

Gartner Edge Computing

Hybrid Clouds

Search Data Center Edge and hybrid clouds

Common Cloud Computing Services

Redhat on IaaS, SaaS, PaaS

WTE Magazines

WTE on Flipboard
WTE on Flipboard
WTE Ecosystem Magazine
WTE Ecosystem Magazine
Techno Magazine
Techno Magazine