Technologies, Services, and Tools to Build Cloud and Digital Systems and Applications

learn solutions architecture

This page lists the popular technologies, services, and tools that are used in building digital systems and applications. This list is obviously not exhaustive but covers the popular frameworks and technologies.

 

Web Servers

A web server is used to host public web and other Internet traffic. This is usually the first tier in hosting any digital website or platform.

  • NGINX – A lightweight http server based on open source technologies designed to handle much larger web traffic than the traditional Apache server.
  • Apache Server – One of the original open source web servers that is still widely used in building digital and traditional web traffic.

 

Load Balancers

A load balancer distributes traffic to various internal web services based on its specific configuration. The servers may be located in one subnet or on different networks for fault tolerance or other geographic reasons.

  • AWS Elastic Load Balancers – These distribute traffic across the multiple virtual servers in the cloud environment.

 

Virtual Machines (VMs)

 

Cloud Architectural Concepts

  • Auto Scaling – This refers to scaling an environment’s resources based on resource demands.

Software Development Frameworks

  • Java –
  • PHP –
  • .NET Framework – This is a software framework developed by Microsoft in the early 2000s for developing applications that run in a Windows environment. The .NET framework provides a runtime environment on the Windows platform allowing applications to use services related to security, memory management, exception handling and others. Developers usually develop .NET applications in Visual Studio, which is an integrated development environment.
  • Node.js –
  • Python –
  • Ruby –

 

Application Servers

 

  • Docker containers – Support multiple languages?
  • Amazon EC2 (Elastic Compute Cloud)servers – These are virtual servers located in a typical cloud architecture. Servers come in various flavors (e.g. Windows and Linux) and can be launched in multiple quantities depending on business’s systems requirements. Businesses have the ability to provisions various sizes of servers (CPU, memory, and storage) depending on system and workload performance requirements. These servers are priced according to the usage and other factors. On demand instances lets one to request instances and release them when not needed thus being charged only on use. Businesses can also get reserve instances for longer term use and pay reduced prices. Amazon also offers Spot instances where businesses can bid on pricing and get the best possible rate based on market demands and rates.
  • Amazon ECS – This service provides docker containers on AWS EC2 virtual servers.
  • AWS Lambda –

 

Storage Services

  • Amazon EBS (Elastic Block Storage) – This storage service allows one to get extra storage to be attached to the virutal servers in addition to the storage that comes part of the virtual server (AWS EC2).

 

Application Frameworks

  • Docker Containers – These are software containers that wrap all elements of an application such as run time, code, needed libraries, documentation, etc. in one unit called a container. This allows them to run independently on all platforms. The standardization of Docker containers have popularized their use as they can deployed and executed on multiple platforms. This mechanism and architecture frees developers from the hassles of setting up specific environments and the complications that arise from running different types of applications on different operating systems and environments. More information on Docker can be found here.
  • Tomcat –
  • Spring –
  • Jersey –
  • Node JS Platform –
  • REST (Representational State Transfer) –
  • JSON (JavaScript Object Notation) – JSON is a lightweight technology used for data exchange between two computers written in JaveScript notation. As the data between the host and the server can only be transferred in text,  the browser converts the JavaSript code into JSON before sending it to the server and vice versa. Similarly, the text can be convert back to JavaScript as well. More information on JSON can be found here.

Cloud Infrastructure

  • Apache Mezos – A cluster manager that facilitates resource isolation and sharing across distributed applications and systems. Apache Mezos exposes APIs that applications can use for resource management and scheduling.
  • AWS AZ (Availability Zones) –
  • AWS Regions –

 

Networking

  • VPN (Virtual Private network) – A secure connection between two computers or two networks. A VPN connection can be established over the public Internet. Although the connection is over the Internet, teh VPN establishes a secure tunnel on the Internet to secure the communications between two end points. VPN is used commonly to connect two cloud networks, e.g. connecting a private cloud with a public cloud network.
  • Direct Connect – This refers to a dedicated network connection between two networks. Unlike a VPN, a Direct Connection is on a dedicated line rather on a public network such as the Internet.
  • VPC (Virtual  Private Cloud) – An AWS specific terminology that refers to a logically separate and private network that one can use to host their cloud and systems.

Caching Servers

These servers are used to cache files that are frequently used in the cloud environment thus preventing more trips to the database.

 

Database Services

 

  • AWS RDS – This is an AWS relational database service. A relational database can be used for traditional applications that require a relational database structure and where transactions require complex queries and joins.
  • AWS Redshift – This is Amazon’s peta-byte data warehousing solution.
  • AWS DynamoDB – A NoSQL database that can be used to store structured and unstructured data.
  • AWS ElasticCache – Provides in-memory caching service where non-persistent data can be stored for faster access.

Public Cloud Services

  • Microsft Azure
  • Amazon AWS (Amazon Web Services) – As one the pioneers in the cloud market,  AWS offers numerous web services to build a wide range of digital and traditional web based solutions. AWS is used by many industry heavyweights including Zillow, Netflix, etc. AWS provides services related to compute (servers), storage, networking, databases, Big Data, Identify management,  security, IoT, various development toolkits, web load balancing, deployment and configuration tools, and many other services.
  • Rackspace –
  • Oracle Cloud (Name?) –

 

Application Services

Amazon Elastic Transcoder – Transcoding refers to converting one media format from one to another depending on the types of user device and application (e.g. mobile phone, tablets, browser, etc.) Media files can be placed in S3 storage in various buckets and the output can also be output to S3. An API is provided for allowing the use of this service programmatically.

 

 

Content Delivery Networks (CDN)

 

  • Akamai –

 

Source Code Management and Control

  • Git – A Source Code Management and version control system used by a majority of developers worldwide. It’s an open source and free system.
  • Github – A web based source code repository used by millions of users worldwide for their projects. Users can store code privately or share it publicly when working on open source or other open projects. Users who work on public projects can use the repository for free while those working on private projects pay a small monthly fee.

 

AWS Services

  • Elastic Beanstalk – This is an orchestration service that allows easy deployment of applications in the AWS environment. Developers simply have to upload the application to AWS and provides certain application information after which Elastic Beanstalk provisions the required AWS infrastructure transparently. The Elastic Beanstalk works with various application languages and paradigms that include programming languages such as Java, Ruby, Python, PHP, Go, etc. and web containers such as Tomcat, Passenger and Puma. It also supports Docker containers. Once deployed Elastic Beanstalk orchestrates between services such as S3, EC2, Elastic Load Balancers, etc.
  • AWS Management Console – A management console is used to manage and deploy various AWS services.
  • AWS Command Line Interface (CLI) –

 

applications (e.g., Hadoop, Spark, Kafka, Elasticsearch)

 

PgMP Course and Study Book