What Is A Web App?
A web app is software that resides on a remote server and is accessed over the Internet through a browser.
Web apps are the perfect way to allow your stakeholders to perform tasks which you may have previously carried out on traditional installed software as there is nothing to download or install and updates are completely hassle-free. All you need is an Internet connection and you can use these web apps from anywhere and on any Internet-connected device (e.g. PC, Mac, smartphone or tablet).
Web apps differ from mobile apps (i.e. those you download from Apple's App Store or Google Play) as mobile apps are developed for a defined platform (e.g. iOS, Android) and installed on the actual phone/tablet rather than being installed on a server and accessed through a browser.
You probably use web apps on a daily basis without even realising it. Using Gmail or Amazon or online banking means you are using a secure web app!
We have developed bespoke cutting-edge web apps for lots of organisations ranging from multi-national blue chip organisations, large public sector organisations and SMEs.
New Media Aid have been developing advanced, bespoke, apps, websites and e-commerce solutions since the year 2000 from their software engineering lab in Hitchin, Hertfordshire, UK.
In those 22 years, software engineering has shifted from developing web apps with a single database and centralised state (so-called monoliths) to microservices where everything is distributed across multiple containers, servers and datacentres. Distributing functionality via microservices can solve scaling concerns (i.e. dealing with sudden peaks in traffic so performance is not affected), but also introduces a new set of problems regarding version management, change control and maintenance costs.
New Media Aid will usually always propose a monolithic application for your bespoke web app or website as it is ultimately cheaper for you to have developed and, more importantly, it is cheaper to maintain.
However, if your application has certain features which could have massive peaks in traffic at random periods, then it might be a good idea to develop those portions of the solution as microservices which will allow those portions of the application to be hosted in distinct containers, on say Azure or AWS, where CPU, bandwidth, disk space can be ramped up and down quickly to cater for the peaks. Reliability and availability are no longer features of a web app, they are requirements!
Adding additional server resources to cope with peaks in demand can be very expensive and hence if you only ramp it up for the functionality requiring it (i.e. the particular microservice) rather than for the whole web app, it can save you a fortune in hosting costs for high traffic web apps and websites.
We have all seen how Microsoft and Amazon profits and market values have shot up in the last few years, however, this is not due to Microsoft selling more software licenses or Amazon delivering more products to your home, it is due to the money they are making selling server resources through their cloud hosting services, Azure from Microsoft and AWS from Amazon. The more you can break out web apps into distinct microservices (interconnected via API calls) the more you can save on cloud hosting for high traffic websites and web apps.
Enterprises are increasingly realising cost savings, solving deployment problems, and improving DevOps and production operations by using containerised microservices. Microsoft has been releasing microservice container innovations for Windows and Linux by creating products like Azure Kubernetes Service and Azure Service Fabric, and by partnering with industry leaders like Docker, Mesosphere, and Kubernetes. These provide microservice container solutions that help app developers like New Media Aid to build and deploy applications at cloud speed and scale.
What are microservices?
The cloud drives today's application development and IT system management. Modern cloud applications need to be fast, agile, massively scalable, and reliable. Containers help applications achieve all of those requirements. This is where a microservice architecture comes in. Microservices enable an approach to software development and deployment that is perfectly suited to the agility, scale, and reliability requirements of modern cloud applications.
What is a microservice architecture?
As the name implies, a microservices architecture is an approach in which a large application is split up into a set of smaller services. Each service runs in its own process and communicates with other processes using protocols such as HTTP/HTTPS or WebSockets.
Some key characteristics of microservices are:
- Microservices are small, independent, and loosely coupled.
- Each microservice has a separate codebase, which can be managed by a small development team.
- Microservices are deployed independently. A team can update an existing microservice without rebuilding and redeploying the entire application.
- Microservices are responsible for persisting their data or external state in their respective databases. Unlike the monolithic architecture, microservices do not share databases.
- Microservices communicate with each other by using well-defined APIs. Internal implementation details of each service are hidden from other services.
- Supports polyglot programming. For example, microservices don't need to share the same technology stack, libraries, or frameworks.
Docker is becoming the de facto standard in the container industry, supported by the most significant vendors in the Windows and Linux ecosystems. (Microsoft is one of the main cloud vendors supporting Docker.) In the future, Docker will probably be ubiquitous in any datacentre in the cloud or on-premises.
In addition, the microservices architecture is emerging as an important approach for distributed mission-critical applications. In a microservice-based architecture, the application is built on a collection of services that can be developed, tested, deployed, and versioned independently.
New Media Aid has been developing web apps using the .Net Framework since it was first released in 2001 and therefore our web app developers and app engineering team would look to use one of the two .Net supported frameworks for building server-side containerised Docker applications, .NET Framework and .NET 6. Whilst these two .Net frameworks share many .NET platform components and our app developers can share code across the two, there are fundamental differences between them so which framework our app engineers use will depend on what needs to be accomplished.
Containerisation is an approach to software development in which an application or service, its dependencies, and its configuration (abstracted as deployment manifest files) are packaged together as a container image. The containerised application can be tested as a unit and deployed as a container image instance to the host operating system (OS).
Web App Security
Web app security is at the heart of the apps we develop. Our app development team in Hitchin, Hertfordshire (only 25 minutes from Central London) take your data security very seriously!
Most web app hacking attacks happen by means of cross-site scripting (XSS) or SQL injection attacks. This is usually due to the poor coding practices of the relevant web app developers.
We develop our web apps assuming they will be targeted by hackers hence we ensure our custom-made web apps are coded in a way that protects them from such hacking attempts. We keep abreast of current hacking trends and engage in "white hat" hacking attempts and "penetration testing" of our apps to help keep them secure.
Web App Data Encryption
We can make sure that all data captured and stored on the web apps we now develop is encrypted with the strongest cryptography available to protect your data.
We will generally encrypt data using cryptographic algorithms that meet the Advanced Encryption Standard (AES) which is a symmetric block cipher used by governments to protect classified information.
AES is made up of block ciphers which encrypt and decrypt using secure cryptographic keys with government "Top Secret" information requiring 192-bit or 256-bit cryptographic key lengths.
e-Commerce Website Development
We are seasoned web app developers who build bespoke e-commerce websites from the ground up (we do not simply resell ready-made e-commerce software like many design agencies tend to do) so you know you will be getting a bespoke e-commerce website that is 100 per cent tailored to your business requirements.
We will build into your bespoke e-commerce website all the features you require (just tell us what you want). We would generally recommend at least the following features for your e-commerce website:
Mobile Friendly
Most online sales through e-commerce websites are now performed on a smartphone or tablet rather from a PC. We will make your e-commerce website works perfectly and in a user-friendly manner (i.e. no pinching or zooming) on all smartphones and tablets as well as PCs.
Search Engine Friendly
Our e-commerce software engineers will code your e-commerce website so all product category and individual product pages have auto-generated search engine friendly URLs which will all be indexed by search engines such as Google. (e.g. mywebsite.co.uk/widgets and mywebsite.co.uk/widgets/widget-name).
Secure Content Management System (CMS)
The bespoke web app we develop for you will provide a secure online Content Management System (CMS) where you will be able to manage all your website content (even from your phone).
Product Management
You will be able to add, update, suspend and delete all products online through the CMS (categories, title, description, price, photos, videos, etc.) and we can give you all the variables you need for all your product categories (e.g. sizes, colours, etc.)
Stock Control
We will code your system so the stock number shown against each product is correct and will auto-update whenever a product is purchased. You will also be able to enter the stock locations to aid producing pick-lists for dispatch.
Promotional Discount Promo Codes
The e-commerce web app will give you the ability to create promo codes for fixed amounts, percentages, BOGOFF (Buy One Get One For Free), etc. which you can use in various marketing initiatives to generate new customers or to incentivise repeat purchases from existing customers.
Order Fulfilment & Dispatch Notification
Our web app developers will always add order fulfilment functionality to our bespoke e-commerce systems to make it really easy for your staff to fulfil and dispatch orders. For example you will be able to print off (or view on a phone/tablet) order pick lists with the ability to tick when an order has been prepared for dispatch and which will then send a dispatch notification email (or SMS text if you like) to the customer.
Product Reviews
Our expert e-commerce developers will code your e-commerce system so it can automatically send (a defined number of days after dispatch) an email asking customers to review the products purchased (e.g. select stars and add text review) which can then appear on the product details page (you will have the ability to edit or delete in case it is a malicious review).
Sales Statistics
We will give you the ability to view all sales stats required to help you manage and plan your online business. This will include graphical views and Excel spreadsheet generation in case you wish to slice and dice the data offline.