<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Serverless on Business Information Technology Services</title>
        <link>https://www.bitservices.io/categories/serverless/</link>
        <description>Recent content in Serverless on Business Information Technology Services</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <copyright>BITServices Ltd</copyright>
        <lastBuildDate>Sat, 01 Jan 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://www.bitservices.io/categories/serverless/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Arden University</title>
        <link>https://www.bitservices.io/projects/arden/</link>
        <pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate>
        
        <guid>https://www.bitservices.io/projects/arden/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://arden.ac.uk&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://www.bitservices.io/img/arden-university/logo.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Arden University&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For Arden, there were two projects to deliver: an Amazon Elastic Kubernetes
Service (&lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/eks/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EKS&lt;/a&gt;) based platform and development of their serverless integrations.&lt;/p&gt;
&lt;p&gt;In order to help with the delivery of these projects, some open source
contributions were made.&lt;/p&gt;
&lt;h1 id=&#34;elastic-kubernetes-service-eks-platform&#34;&gt;Elastic Kubernetes Service (&lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/eks/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EKS&lt;/a&gt;) Platform
&lt;/h1&gt;&lt;p&gt;A new platform was required to migrate existing on-premises and Amazon &lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/ec2/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EC2&lt;/a&gt;
workloads to. The new platform had to allow developers to easily manage their
own deployments, allow for centralised logging and monitoring, had to be secure
and allow for management of things such as DNS records and TLS certificates to
be fully automated.&lt;/p&gt;
&lt;p&gt;The platform had to be delivered &amp;lsquo;as code&amp;rsquo; so it could be easily managed,
upgraded and replicated. This was done using mainly &lt;a class=&#34;link&#34; href=&#34;https://www.terraform.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Terraform&lt;/a&gt; with some base
&lt;a class=&#34;link&#34; href=&#34;https://kubernetes.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kubernetes&lt;/a&gt; services being deployed using the &lt;a class=&#34;link&#34; href=&#34;https://www.terraform.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Terraform&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://helm.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Helm&lt;/a&gt; provider.&lt;/p&gt;
&lt;p&gt;Any base &lt;a class=&#34;link&#34; href=&#34;https://kubernetes.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kubernetes&lt;/a&gt; services that &lt;a class=&#34;link&#34; href=&#34;https://argoproj.github.io/cd/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ArgoCD&lt;/a&gt; did not depend on explicitly were
managed and deployed by &lt;a class=&#34;link&#34; href=&#34;https://argoproj.github.io/cd/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ArgoCD&lt;/a&gt; along with the business applications hosted on
the platform.&lt;/p&gt;
&lt;h2 id=&#34;managing-deployments-with-argocd&#34;&gt;Managing Deployments with ArgoCD
&lt;/h2&gt;&lt;p&gt;The main interface into the platform for developers was through &lt;a class=&#34;link&#34; href=&#34;https://argoproj.github.io/cd/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ArgoCD&lt;/a&gt;. This
allowed developers to deploy applications, see the status of their workloads and
get immediate logs and events to diagnose failures. Being able to deploy and
diagnose simple issues themselves allowed developers to spend less time being
blocked waiting for infrastructure engineers to help out.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://argoproj.github.io/cd/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ArgoCD&lt;/a&gt; was integrated with Microsoft &lt;a class=&#34;link&#34; href=&#34;https://www.microsoft.com/security/business/microsoft-entra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Entra&lt;/a&gt; to allow single-sign on which
improves security and convenience. Developers could be assigned to individual
projects meaning they only have access to the applications that they are working
with.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://argocd-image-updater.readthedocs.io/en/stable/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ArgoCD Image Updater&lt;/a&gt; was also used in development environments so that
successful builds of an application could be deployed automatically.&lt;/p&gt;
&lt;h2 id=&#34;monitoring--logging&#34;&gt;Monitoring &amp;amp; Logging
&lt;/h2&gt;&lt;p&gt;For the monitoring and logging, open source tools were used as they provide
excellent flexibility and of course value.&lt;/p&gt;
&lt;p&gt;For monitoring, &lt;a class=&#34;link&#34; href=&#34;https://prometheus.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Prometheus&lt;/a&gt; was used with &lt;a class=&#34;link&#34; href=&#34;https://grafana.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana&lt;/a&gt;. &lt;a class=&#34;link&#34; href=&#34;https://prometheus.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Prometheus&lt;/a&gt; was also
configured to make a future expansion to &lt;a class=&#34;link&#34; href=&#34;https://thanos.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Thanos&lt;/a&gt; as easy as possible, should
the need ever arise.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/oss/loki/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Loki&lt;/a&gt; was used for logging, it integrated perfectly with the monitoring metrics
since it also uses &lt;a class=&#34;link&#34; href=&#34;https://grafana.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana&lt;/a&gt; as the main user interface.&lt;/p&gt;
&lt;p&gt;Alerts were configured with &lt;a class=&#34;link&#34; href=&#34;https://grafana.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana&lt;/a&gt; unified alerts, allowing alerts to be
raised from either metric or logging data.&lt;/p&gt;
&lt;h2 id=&#34;automated-management&#34;&gt;Automated Management
&lt;/h2&gt;&lt;p&gt;Tools such as &lt;a class=&#34;link&#34; href=&#34;https://cert-manager.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Certificate Manager&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes-sigs/external-dns/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;External DNS&lt;/a&gt; were used to allow
automation of day to day administrative tasks.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://cert-manager.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Certificate Manager&lt;/a&gt; automatically provisions and renews TLS certificates for
applications hosted within the platform whilst &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes-sigs/external-dns/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;External DNS&lt;/a&gt; creates and cleans
up DNS records.&lt;/p&gt;
&lt;h2 id=&#34;future-ready&#34;&gt;Future Ready
&lt;/h2&gt;&lt;p&gt;Whilst not immediately implemented due to possible conflicts with the business
the platform was developed and tested with IPv6 support and support for &lt;a class=&#34;link&#34; href=&#34;https://www.arm.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ARM&lt;/a&gt;
based compute allowing for easy adoption later on.&lt;/p&gt;
&lt;h1 id=&#34;serverless-integrations-development&#34;&gt;Serverless Integrations Development
&lt;/h1&gt;&lt;p&gt;Arden was implementing a new student record system called &lt;a class=&#34;link&#34; href=&#34;https://www.tribalgroup.com/solutions/student-information-systems/sits-vision&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SITS&lt;/a&gt;. This was a
huge project that affected all areas of the business. A significant problem was
integrating existing systems that do not understand &lt;a class=&#34;link&#34; href=&#34;https://www.tribalgroup.com/solutions/student-information-systems/sits-vision&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SITS&lt;/a&gt;, such as: the virtual
learning environment, Active Directory, time tabling products and many more.&lt;/p&gt;
&lt;p&gt;To enable this communication between systems, a group of serverless
&amp;lsquo;middlewares&amp;rsquo; were used to keep things scalable and event driven.&lt;/p&gt;
&lt;p&gt;Since the integrated systems spanned across &lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AWS&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://azure.microsoft.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Azure&lt;/a&gt; as well as
including software as a service (SaaS) solutions, many technologies were used to
integrate them. These technologies included: &lt;a class=&#34;link&#34; href=&#34;https://www.typescriptlang.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Typescript&lt;/a&gt; based &lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/lambda/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lambda&lt;/a&gt;
functions deployed with the Amazon &lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/cdk/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CDK&lt;/a&gt;, Azure &lt;a class=&#34;link&#34; href=&#34;https://azure.microsoft.com/products/logic-apps&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Logic Apps&lt;/a&gt;, Azure &lt;a class=&#34;link&#34; href=&#34;https://azure.microsoft.com/products/functions/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Functions&lt;/a&gt;,
Amazon &lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/sns/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SNS&lt;/a&gt;, Amazon &lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/sqs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SQS&lt;/a&gt; and Azure &lt;a class=&#34;link&#34; href=&#34;https://azure.microsoft.com/products/service-bus/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Service Bus&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;These integrations handled large amounts of traffic especially as &lt;a class=&#34;link&#34; href=&#34;https://www.tribalgroup.com/solutions/student-information-systems/sits-vision&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SITS&lt;/a&gt; went
live at Arden. They also helped the business implement complex processes with
systems that cannot be directly integrated.&lt;/p&gt;
&lt;h1 id=&#34;open-source-contributions&#34;&gt;Open Source Contributions
&lt;/h1&gt;&lt;p&gt;The following open source contributions were made whilst delivering these
projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/prometheus/prometheus/pull/16088&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Prometheus: discovery: Allow EC2 Service Discovery to work with IPv6-only instances&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes-sigs/external-dns/pull/5111&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;External DNS: feat(aws): always create AAAA alias records in route53&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/zorn96/ms_active_directory/pulls?q=is%3Apr&amp;#43;author%3Arlees85&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ms_active_directory: Multiple contributions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/navarasu/onedark.nvim/pull/234&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;onedark.nvim: Fix NvimTree Floating Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/kdheepak/lazygit.nvim/pull/148&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;lazygit.nvim: feat: Allow current buffer commits to show on the already worked out Git root&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- raw HTML omitted --&gt;
</description>
        </item>
        
    </channel>
</rss>
