Atlassian today extended its footprint in IT service management (ITSM) with the launch of Jira Service Management, a cloud-based platform designed to bridge the divide between DevOps and ticket-based approaches to managing IT.
Edwin Wong, head of product for IT at Atlassian, said Jira Service Management builds on Opsgenie, an IT incident management platform. The goal is to provide an ITSM platform to better manage IT at a higher velocity by enabling developers to address IT support processes more easily, he said.
Going forward, Jira Service Management will add asset and configuration management and conversational ticketing capabilities that Atlassian gained via the recent acquisitions of Mindville Insight and Halp, he added.
Jira Service Management currently provides support for on-call scheduling, alerting, incident swarming from Opsgenie along with deeper integration with Jira Software for project management, the Bitbucket repository and Confluence collaboration software.
IT team cans also leverage capabilities such as bulk ticket actions along with machine learning algorithms to intelligently categorize similar tickets, noted Wong.
Jira Service Management replaces the Jira Service Desk platform that many development teams already use to manage incidents. The goal now is to provide a platform that makes it easier for developers and IT administrators to collaborate more easily to resolve issues, he said. There are currently more than 25,000 organizations that employ Jira Service Desk, which Wong said provides the base of customers from which Atlassian intends to drive convergence of DevOps and ITSM workflows.
Most legacy ITSM platforms were designed for IT administrators. However, as IT continues to evolve developers are assuming responsibility for applications end-to-end. That transition requires a different approach to ITSM that provides deeper integration with DevOps tools that enable developers to resolve issues without requiring IT organizations to convene a “war room” meeting for each incident, said Wong.
The launch of Jira Service Management comes at a time when more organizations are starting to transition ITSM to the cloud. With most IT staff working from home either full- or part-time to help combat the spread of the COVID-19 pandemic, organizations need ITSM platforms that are easily accessible from anywhere.
Each IT organization will need to decide to what degree they need to converge DevOps and ITSM workflows. The goal should be to enable developers to resolve issues efficiently when required. There is still a need for ticket-based approaches to managing IT that are based on the ITIL framework. However, organizations are discovering that ITIL-based frameworks don’t enable the level of agility required to quickly resolve incidents involving custom application software.
Regardless of the path forward, ITSM is entering a new phase as organizations start to appreciate how dependent they are on software. The days are coming to an end when end users log into an ITSM platform to create a job ticket that is addressed by an IT administrator who would contact a developer if necessary. What’s required is a more proactive approach that immediately alerts developers whenever there is an issue. The challenge is enabling that level of support in a way that creates the least amount of friction possible.
Cisco Systems CEO Chuck Robbins said this week that the company’s No. 1 priority going forward is to enable IT organizations to better manage application experience via abstraction layers that make to possible for developers to programmatically manage infrastructure.
Speaking at its annual Cisco Partner Summit, which occurred online, Robbins said Cisco is working toward making it possible for developers to not only programmatically provision IT infrastructure but also impact how services are delivered using application networking services the company is currently developing.
Over time, the entire Cisco portfolio will either be cloud-delivered or cloud-managed as Cisco increasingly delivers its technology as a service, he said. As part of that effort, Cisco is now exposing application programming interfaces (APIs) across its portfolio.
At the core of the initiative are investments Cisco is making in AppDynamics, ThousandEyes and its Intersight IT operations management platform. Those tools will be employed to provide insights and observability across a diverse application environment that increasingly includes cloud-native applications running on Kubernetes clusters, Robbins said.
In effect, Cisco is signaling a more aggressive transition toward managing infrastructure as code inside and out of the cloud. This week Cisco announced it has added an Intersight Workload Optimizer to optimize infrastructure consumption along with adding support for dynamic provisioning of Kubernetes clusters via Cisco Intersight. The company also added a Cisco Nexus dashboard to provide visibility into networks spanning multiple clouds, on-premises IT environments and edge computing platforms, and expanded the Cisco Identity Services Engine to now secure a wider variety of internet of things (IoT) endpoints.
Cisco, like every other provider of IT infrastructure, is shifting toward a cloud operating model that promises to enable IT teams to manage on-premises IT infrastructure in the same way IT teams consume public cloud resources. As part of that effort, Robbins noted Cisco has been disaggregating all the software functionality it provides from hardware whenever possible, which will provide IT teams with more flexibility and control over highly distributed IT environments.
The COVID-19 pandemic has only accelerated a transition to managing IT as service, as organizations rely more on applications to engage their end customers, he added.
Of course, Cisco is not the only provider of IT infrastructure with similar ambitions. Not only is networking software is becoming accessible via APIs, but it’s also now possible to deploy a software-defined network on commodity processors almost anywhere. That transition is also the primary reason that network operations are increasingly being folded into DevOps teams seeking to manage compute, storage and networking as code across an extended enterprise.
It may be a while yet before network and storage operations are fully assimilated into DevOps processes. However, it’s now no longer a question of if as much as how long before most IT organizations achieve that goal.
Catchpoint today extended the reach of its monitoring services to include an offering that monitors the devices of end users.
Nik Koutsoukos, chief marketing officer for Catchpoint, said the Employee Experience Monitoring service makes it possible to deploy the same agent software the company employs to track application experience on points-of-presence (PoPs) around the globe to an endpoint device.
With more employees now permanently working across a wider range of geographies in the wake of the COVID-19 pandemic, Koutsoukos said the need to monitor individual application experiences on specific devices has become more pressing.
Accessed via a software-as-a-service (SaaS) platform, Employee Experience Monitoring also provides access to a desktop application that shows both device and network health along with recommendations for resolving issues. That capability provides the guidance many end users who are working from home (WFH) need to resolve issues before creating a job ticket for the IT service desk, noted Koutsoukos.
Employee Experience Monitoring service also goes beyond merely collecting data from endpoints. It correlates the data collected from the endpoint against the network data that Catchpoint is already collecting from more than 850 PoPs around the world. In addition, it also combines real-time endpoint analytics, global user sentiment data and synthetic monitoring to provide deeper insights into the actual end user experience.
Since the beginning of the pandemic, IT teams have been inundated by support calls. However, IT teams traditionally have had very limited visibility into the endpoints they are now being required to remotely support, said Koutsoukos. It’s often impossible to know with certainty whether an application issue is being caused by the device, the network or the local data center or cloud service where the application is deployed, noted Koutsoukos.
Given the probability that employees will be returning to offices full-time is low, it’s clear another approach to manage remote endpoints is required, added Koutsoukos. In fact, as wireless 5G services, which provide more network bandwidth, become more widely accessible there may not ever be a need for employees to return to an office. Internal IT teams, however, will still be expected to troubleshoot application experiences over any type of network, he said.
It’s unclear to what degree the COVID-19 pandemic has forever altered IT service management. The one thing that is certain is the days when IT teams could count on the bulk of users being tethered to either a wired or wireless local area network in an office are pretty much over. Even after a vaccine for COVID-19 is discovered, the bulk of employees will still want to work from home more often to limit the spread of the virus. IT teams, therefore, must come to terms with a new normal that requires tools to not only help them manage end users but also enable end users to help themselves whenever possible.
Dell Technologies today launched Project Apex, an initiative that promises to significantly expand its ambition to deliver IT as a service from the edge to the public cloud.
Announced at the online Dell Technologies World 2020 conference, this initiative builds on the Dell Technologies Cloud Platform through which Dell manages IT infrastructure as service on behalf of customers.
Sam Grocott, senior vice president of product marketing at Dell Technologies, said via a single pane of glass organizations will be able to deploy and manage application workloads running on IT infrastructure provided by Dell as well as public cloud service providers using the Dell Technologies Cloud Console, which is currently available as a public preview.
In the first half of next year, Dell plans to roll out Dell Technologies Storage as a Service (STaaS) for on-premises IT environments, which also can be managed via the Dell Technologies Cloud Console.
In addition, Dell is reducing the entry-level cost of its existing hybrid cloud offering built on top of Dell Technologies Cloud Platform to $47 per instance per month with a subscription, in addition to making the service available in the UK, France and Germany.
Dell is also making a pre-approved Flex On-Demand pricing option that charges organizations on a usage basis for IT infrastructure, and has expanded its managed data protection services to include multiple public clouds.
It’s not clear whether organizations will prefer to rely on Dell to manage their IT versus continuing to manage it themselves or rely on a third-party IT services provider. In theory, organizations will be able to invest more in application development that would eventually consume more IT infrastructure than is consumed today. However, it’s not clear internal IT organizations are prepared to cede control over IT infrastructure and applications to a single IT vendor, especially if they employ IT technologies provided by a broad spectrum of vendors.
In the wake of the economic downturn brought on by the COVID-19 pandemic, however, Grocott noted the number of organizations that prefer to treat IT as an operational expense has increased substantially. In addition, with more employees working from home organizations are looking for a more flexible approach to IT that is a challenge for them to achieve relying on legacy systems. To facilitate that transition, Dell is expanding the refurbishment and recycling services it makes available to customers.
In effect, Dell is enabling a cloud operating model to be applied to all of IT regardless of where applications or IT infrastructure is deployed.
Of course, Dell is not the only IT platform provider with such ambitions. Not only are longtime rivals in the data center expanding the scope of the managed services they provide, but every major provider of a cloud service has also expanded the reach of their offerings to include on-premises and edge computing platforms. It may be a while before this titanic struggle for control over IT plays out, but the one thing that is for certain is the way IT is consumed is changing utterly.
Technological and operational shifts are required to accommodate the shift to distributed data and apps
You’ve read how modern companies are disrupting their legacy peers by pursuing a data-driven culture …
Chick-fil-A’s edge use case allows the company to transform its fast-food restaurants.
An industry-first, software-only mobile infrastructure by Rakuten Mobile.
Tesla Autopilot functionality getting ever so close to Level 5, with new features and enhancements pushed to vehicles almost bi-weekly.
There are myriad, but the common thread is this: These are software-first companies in their categories. And why are they software-first? They are data-driven.
Their secret sauce is the continuous pursuit to process and extract insights from data to drive their business decisions and operational efficiencies. So if that’s the recipe, why aren’t incumbents doing it?
Distributed Data & Apps, Oh My!
The Trend
Data is becoming increasingly distributed in the enterprise, and for multiple reasons, including:
Digital transformation of business processes wherever they’re needed—at the branch, the factory, the store … even the car or plane.
The distribution of workloads and clusters themselves due to modern app architecture and deployment trends, including microservices, containers and multi-cloud.
As a result, distributed apps and data in the enterprise typically require the following:
Real-time responses.
Hyper-localization (aka edge).
Near-zero downtime.
Intelligent management and security.
To address the above, there are technological and operational shifts required. Those changes can be summarized below:
What if We Have Legacy Infrastructure in Place?
To recap: Apps are changing, driven by critical business needs. ← Read above.
These changes have a significant impact on enterprise architectures in where apps run and how those apps and data are connected, secured and operated. The properties for dealing with the requirements of distributed apps and data are driving the following shifts:
WHERE — Multiple Clouds and Edge
Data gravity for performance reasons, risk reductions, edge AI use cases, etc.
HOW — Hybrid Applications
Containerization of apps and serverless environments, as well as the need to connect/discover legacy apps are driving new architectural, network and security challenges.
HOW — Layer 3 (Network) → Layer 7 (App/Proxy/API)
Connectivity is changing from traditional network-level (IP) access to app-to-app communication using REST/gRPC APIs which are usually delivered over HTTPS (TCP/443).
Apps Have Changed. So Have the Required Capabilities for Networking and Securing Them
App-2-App Networking: Microservices and containers communicate to each other in addition to the end user and over wider locations, making reliability/performance an even greater consideration.
Higher-layer Security: App-to-app and microservices architectures require zero-trust at the API layer because that’s how they communicate.
API-first: Apps are written to be API producers and consumers on day 1. This has fundamental implications on how those APIs are delivered, connected and secured.
To summarize: There are several technical and architectural trends (driven by business needs) around the types of applications, their locality and the means of how they are delivered/accessed. As they converge, it is creating major challenges for traditional networking, security and app services infrastructures.
Today’s enterprise architecture has become increasingly complex for app delivery
OK, I’ll write what you’re thinking: Your router/switch vendor is obsolete. Your firewall is obsolete. Your load balancer/ADC is obsolete. The operational tools and services to manage this at scale are obsolete.
When it comes to distributed apps and the need to process distributed data, traditional networking and security tools (and their operations) are unsustainable.
Your Load Balancer/ADC Isn’t in Kansas Anymore …
Legacy application delivery controllers or ADC (aka “the modern load balancer”) were designed to efficiently and securely deliver web-based monolithic apps directly to end users with the highest performance possible. They were:
Optimized for monolithic apps accessed directly by end users, whether SaaS and internet apps or enterprise web apps hosted in a public cloud or private data center.
Either hardware- or software-based, though recently evolved to software offerings such as NGINX and Avi, which can be deployed in multiple clusters and public clouds.
Limited in operational simplicity and end-to-end visibility when operating at scale in a distributed environment. They can’t be centrally managed (think SaaS) and don’t provide end-to-end observability across clusters, end-to-end policy management, etc.
Limited or no API capabilities. While newer software versions such as NGINX may have limited API gateway capabilities, most don’t. And none have API auto-discovery and control. Older ADCs were a combination of hardware or software solutions focused on delivering apps at L4 up to L7 from a traffic management basis. Modern apps have moved beyond this, and so must your app networking and security infra.
Don’t believe me? Let me give you a real-world example to help calibrate where I’m coming from.
Architecture for distributed HD mapping processing
Above is an example architecture of an auto manufacturer looking to retrofit its existing and planned electric vehicle (EV) stations to collect HD mapping and process it at scale.
Let’s analyze the workflow and requirements:
EVs (taxis, rideshare and/or vehicles agreed to share and process data) drive in and a video sensor picks up on the make, model, VIN, license plate, etc.—any identifiable data.
Query a backend database, typically hosted in a private cloud (for security and compliance reasons). Get the necessary credentials to access the vehicle’s local Wi-Fi.
Offload the data to the EV station. Process locally what’s needed; the rest is sent to AWS for large-scale mapping analytics.
Now add to this requirement that EV owners for business reasons or regulatory reasons would like to lease that EV compute to other automotive companies, law/government enforcement to access the EV stations in a secure, multi-tenanted and auditable way.
Now multiply this need across 25,000 EV stations!
The Oh Sh*t! Moment — Real-World Example
There were multiple options and proposals put forward, insourced through various teams or outsourced through system integrators. Below is an example of one of those proposals:
Traditional app networking architecture
Let’s Summarize:
Infrastructure — 1 x public cloud vendor, 2 x private DCs, 5 x Software/Hardware Vendors (router/SD-WAN, firewall, load balancer, API gateway) across all locations (public, private and edge).
Application Management — 1 x vendor with inbuilt tooling for LCM of apps
Operational Model — Different tooling across environments (public, private and edge), different software/management systems for each vendor and service.
Configuration Models — Different configurations for services and vendors to achieve a holistic outcome.
Security/Auditing — Security across vertical software/vendor layers; along with horizontal visibility and management challenges (i.e. many locations).
I’ll let someone else make the TCO on why the above is a nightmare (or this can be a topic for another post), but let’s assume for a moment you find a business model that actually works in your favor because you have an army of lawyers to make sure the vendors (the ones with deep pockets) bear the burden. But is this really a positive outcome for your business, employees or customers?
Modern App Networking + Security for the Modern Enterprise
A modern enterprise infra architecture for distributed apps
A new generation of infrastructure platform (aka “modern”) is what’s needed for networking and securing modern apps, and it must be more app- and API-centric than your traditional ADCs. This is similar to how ADCs were an evolution of vanilla L4 load balancers over a decade ago.
Here is a potential list of things to look for as you begin researching a modern infra stack and service for app networking and security:
Integrated stack for Layer 3-7 networking and security — a high-performance service that can be used to deliver secure app-2-app connectivity.
SaaS-first operations — everything from deploying a stack (site) to full lifecycle management of the software and its services. Think configuring a load balancer or reverse-proxy within minutes across 10,000 locations. Or a single pane of glass for your DevOps, NetOps, Dev and SecOps teams.
Intent-based policy — a single expression of intent across all layers starting from Layer 3 → 7 → API. A user can configure (and enforce) network connectivity, network firewall, forward proxy, load balancing, service policies, WAF, API Gateway (AuthZ/AuthZ, API service-2-service policies), etc.
End-to-end and bottoms-up observability — a single pane of glass for all teams to view metrics, logs and alerts from networking, firewalls, load balancers, API Gateway, etc.
Here’s another example:
Finishing Up
To circle back, networking and security for modern apps requires a new kind of thinking … aka modern (or cloud-native) infrastructure. As apps become more distributed, your architecture, infrastructure and operations teams must adapt … and that includes modern app networking and security.
This article is part of a series of articles from sponsors of KubeCon + CloudNativeCon 2020 North America
Cisco today announced a series of Catalyst offerings that combine the functionality of a secure software-defined wide area network (SD-WAN) and a router in a single platform.
Archana Khetan, senior director of product management for enterprise routing and SD-WAN infrastructure within the Intent Based Networking Group at Cisco, said the Catalyst 8000 series is made up of both physical devices and virtual appliances that eliminate the need for organizations to deploy separate SD-WAN and routers at the network edge.
The high end of the Catalyst 8500 platform line is based on a third-generation Quantum Flow Processor, a proprietary ASIC that Cisco employs in its networking equipment. It is designed for data center, colocation and aggregation sites and, for the first time for Cisco, integrates 40G and 100G Ethernet ports.
The Catalyst 8300 Series Edge Platforms are designed for branch offices that are transitioning from relying solely on routers to embracing SD-WANs. In addition to providing 4X better performance than legacy Cisco routers, the Catalysts 8300 series is designed to allow organizations to insert modules that are compatible with existing Cisco’s ISR 4400 routers. Compute and switching capabilities can also be added via a UCS-E Series blades and UADP-based switch modules can be added to create a software-defined branch office capable of running microservices-based applications based on containers on x86 processors. Cisco also unveiled today a Catalyst Cellular Gateway, for organizations that want to connect branch offices over 4G LTE wireless networks with support for 5G networks planned.
Finally, Cisco has added Catalyst 8000V Edge Software, which enables IT teams to deploy Cisco networking software on a public cloud. While most public clouds already provide networking services, Catalyst 8000V Edge Software provides more advanced networking and security capabilities that can be managed as an extension of an existing enterprise network, said Khetan.
Each member of the Catalyst 8000 series has been integrated with Cisco Umbrella to provide a means of managing networking and security policies via the cloud, while Cisco SD-WAN Cloud OnRamp integrates with cloud services from Amazon Web Services (AWS), Google and Microsoft to provide visibility into those environments.
While Cisco remains the dominant provider of networking equipment in the enterprise, the rise of SD-WAN platforms that essentially replace routers in branch offices has created a slew of competitors that are gaining footholds in branch offices at the expense of Cisco. With the launch of the Catalyst 8000 series, Cisco is aiming to bridge the gap between routers and SD-WAN appliances within a single platform that promises to be easier to manage via the cloud.
It’s not clear to what degree that approach will resonate with enterprise IT environments, but it’s clear Cisco is now more than ready to strike back.
ServiceNow and IBM this week announced that the Watson artificial intelligence for IT operations (AIOps) platform from IBM will be integrated with the IT service management (ITSM) platform from ServiceNow.
Pablo Stern, senior vice president for IT workflow products for ServiceNow, said once that capability becomes available later this year on the Now platform, IT teams will become on average 20% more productive. This is good timing, as most teams currently are struggling to adapt to the increased demand for IT support from employees working from home and in the office in the wake of COVID-19 pandemic.
Mike Gilfix, vice president of cloud and integration and chief product officer for Cloud Paks at IBM, said IT teams will also be able to proactively identify anomalies in IT environments 60% faster.
IT teams interact with IBM Watson AIOps via a chatbox interface such as Slack. The platform will surface recommendations based on ServiceNow data and enable IT teams to query IBM Watson AIOps to provide a faster mean time to resolution for IT incidents, said Gilfix. That capability is provided via a configuration management database from ServiceNow that tracks the operational state of all business services in real-time.
IBM Watson AIOps, which can be deployed in the cloud or on-premises, also can surface additional context the next time similar issues arise, in addition to being able to record actions and insights for auditing purposes. IT teams can also feed data from other systems into IBM Watson AIOps to automate a wider range of processes.
AIOps platforms won’t be replacing IT professionals anytime soon. However, IT teams that are not able to access AIOps platforms will find themselves working harder than their peers. As IT environments become more complex, the number of potential issues that can adversely impact end user experience are moving beyond the capabilities of an IT team’s ability to track manually.
AIOps platforms, meanwhile, continue to advance in sophistication. Given the structured nature of IT environments, IBM Watson AIOps is now able to have a significant impact on productivity with 24 hours of being deployed, Gilfix said. As part of this launch, IBM is expanding its global ServiceNow services offering to include additional capabilities that provide advisory, implementation and managed services on the Now Platform. IBM also has formed an AIOps Elite Team that will help prepare organizations to transition to AIOps free of charge.
IT may take a while still for IT teams to adjust culturally to AI, but there are many rote tasks that many IT professionals would like to see eliminated. Over time those tasks conspire to increase the level of drudgery IT professionals experience as they perform the same repetitive tasks. In theory, at least, AI should reduce overall IT staff fatigue in a way that could reduce turnover while at the same time freeing up resources to tackle more complex IT challenges.
It may take some time for IT teams to trust the recommendations surfaced by an AIOps platform, but the more those platforms learn about the IT environment, the more accurate those suggestions become.
What cloud providers do you work with? Google Cloud Platform (GCP)? Amazon AWS? Microsoft Azure? Which services? Are you using a managed Kubernetes such as GKE, AKS, Openshift or EKS? How do you manage your cloud resources? How do you manage the release cycle of the infrastructure and applications that you deploy?
If the above questions are the basic introduction to describe your work, then you are probably also familiar with the console, API or both of a major cloud provider. You probably know how to use a configuration management tool such as Ansible or Chef, Terraform or CloudFormation, or some other similar tool. Additionally, you are familiar with the languages of one of these tools. You probably have opinions on those languages, which inform your attraction to the tools you choose.
Kubernetes and Ansible use YAML. CloudFormation and Azure ARM can be JSON or YAML. Chef and Terraform have their own languages. (To be precise, Terraform can also be expressed in JSON.)
A comparison of cloud orchestration languages
Whenever you start learning a new tool, it is helpful to already know the tool’s language. The strength of using a standard language is that new users will feel more at home learning to use a language if they already understand the basics of its syntax. In the same way that many English speakers will relate to cognates in French, German or Latin than in Greek or Sanskrit without using transliteration, developers that know YAML will find it easier to learn Ansible than a tool that relies on XML. However, just because you know the language doesn’t mean you know the DSL. A DSL might use a language in a novel or even strange way that contradicts what you believe is proper.
A number of variables may come into play when a user develops an opinion of a tool. The most important is, “How simple is it for me to create something that does what I want and minimizes frustration later on?” The next often are, “Which I venture is dependent on the first, are apparent scientific and analytical reflections? Does it lend itself to convoluted data structures? Do efforts to remain readable flounder because of inefficient use of space or punctuation?”
Some projects, such as HashiCorp’s (Terraform), abandon a standard language to avoid such issues and instead create their own languages. The main drawback here is that it is more difficult to integrate the tool with existing projects and software libraries (although, providing for input and output in standard languages such as JSON can alleviate such problems).
Cloudify has a DSL, which is based on YAML. Cloudify uses YAML, because it is easier to read than JSON, but powerful enough to define new types when necessary.
Whether using a general language such as YAML or a proprietary one, certain designations are necessary: the type of resource, the name of the resource and often even whether the line refers to a resource, a parameter or a dependency.
To illustrate the differences between the languages, and associated products that have been mentioned, let’s take a look at a few examples. Let’s use a relatively simple example, an AWS VPC, named “myVPC.” This is a simple resource to define in any language because it has relatively few parameters and no dependencies aside from an AWS account.
Terraform:
resource “aws_vpc” “myVPC” {
cidr_block = “10.0.0.0/16”
instance_tenancy = “dedicated”
tags = {
foo = “bar”
}
}
Terraform, or HCL, is notable for two reasons. First, the HCL “block” syntax recalls method definition syntax in a number of familiar programming languages. This is a nod to how Terraform, among all of these tools, relates to packaging infrastructure definition as code. Second, Terraform is the most concise. It only takes seven lines.
Also, Terraform syntax infers significance from string position through the use of identifiers, such as “resource,” “aws_vpc” and “main.” HCL knows that block type comes first, followed by type and then name. For readability, this may be an ideal and certainly elegant method for defining components. Inside of the block definition is the API payload accepted by AWS EC2 Service for the creation of a VPC.
One drawback of HCL is the punctuation requirements. Braces are required to enclose blocks as well as dictionaries. Arrays require square brackets.
Let’s compare HCL/Terraform to CloudFormation:
myVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
InstanceTenancy: dedicated
Tags:
– Key: foo
Value: bar
CloudFormation utilitizes YAML as well as JSON. These are data serialization languages. So, we are looking at our resource definition, less as code and more as information. This results in greater verbosity and decreased readability. Less concise, CloudFormation is eight lines.
Whereas HCL uses “blocks” for resources. CloudFormation templates just call them “resources.” Instead of positional arguments, we have keys and values. “Type” defines the type. Properties introduce the resource API payload accepted by AWS EC2 service. However, YAML reduces the need for punctuation. Dictionaries are introduced by indentation and lists with hyphens. This can result in improved readability, and if someone really likes to use braces and brackets, no one is forcing them not to. However, it increases the number of lines and characters needed, because even abstract sections of the DSL require keys for introduction. This is because YAML accepts JSON.
Ansible also has a module for creating a VPC in AWS.
– name: create VPC.
ec2_vpc_net:
name: myVPC
cidr_block: 10.10.0.0/16
region: us-east-1
tags:
foo: bar
tenancy: dedicated
Ansible also uses YAML; however, there is no separation between API payload and other parameters. For example, authentication parameters are on the same level as payload parameters. Ansible uses modules for infrastructure management the way it uses modules for managing applications, which, while novel, is implemented in a clunky and relatively useless way. For example, you need a playbook for creation and a playbook for deletion.
Cloudify:
myVPC:
type: cloudify.nodes.aws.ec2.Vpc
properties:
resource_config:
CidrBlock: 10.10.0.0/16
InstanceTenancy: dedicated
Tags:
– Key: foo
– Value: bar
Cloudify also uses YAML. It also works with key-value pairs. Cloudify is even more verbose than CloudFormation.
A node template can be a resource or a group of resources. In Cloudify, there are three types of properties. The resource_config, which contains the API Payload; the client_config, which contains the API Authentication; and orchestration properties,which are additional properties that enable you to describe how Cloudify will interact with the resource. For example, all resources have the use_external_resource, which means that Cloudify can use resources that Cloudify did not create.
Whereas Terraform/HCL uses “resource blocks” and CloudFormation uses “resources,” Cloudify uses “node templates.” Node templates can be a VPC or other cloud resource, or even a CloudFormation Template or a Terraform template.
Azure also sports an orchestrator, Azure ARM, and has its own DSL to describe Azure resources. This is how a virtual network is defined in Azure ARM:
type: Microsoft.Network/virtualNetworks
apiVersion: ‘2019-11-01’
name: myVPC
location: “[parameters(‘location’)]”
properties:
addressSpace:
addressPrefixes:
– 10.0.0.0/24
subnets:
– name: “[parameters(‘subnet_name’)]”
properties:
addressPrefix: 10.0.0.0/24
One notable difference in Azure ARM is that the resource entry in the YAML does not have a key name with the definition being the value of the name key; instead, the entire dictionary is a list item. This is perhaps more concise, but it may forfeit a modest amount of readability. Also, Azure is similar to Cloudify in that the resource definition “properties” is not on the same level as other more general details, such as “apiVersion” or “location.”
The syntax for accessing a parameter is also a tad obtuse. Accessing a key in a dictionary via square brackets and parentheses is probably one of the most unreadable methods in the DSLs we are looking at.
Like Cloud Formation, ARM can be written in JSON or YAML.
Terraform can define the same Azure resource using fewer lines.
Azure and Amazon expose ARM and CloudFormation as API objects respectively. This enables orchestrators to manage those resource stacks as single resources.
You can define an ARM deployment in Terraform like this:
Cloudify can also orchestrate ARM deployments. Here is a simple infrastructure stack in ARM using Cloudify:
deployment:
type: cloudify.azure.Deployment
properties:
location: { get_input: location }
name: { get_input: resource_group_name }
template_file: ‘resources/arm/environment.json’
Cloudify can also accept a file or inline JSON (or YAML).
Having defined the source code for our infrastructure components, we can now connect other resources and processes to this infrastructure dependency. We can use the Terraform template to a CICD workflow or a networking application.
Using the same approach, Cloudify can also call Terraform stacks:
infrastructure:
type: cloudify.nodes.terraform.Module
properties:
resource_config:
source: resources/terraform/template.zip
variables:
access_key: { get_secret: aws_access_key_id }
secret_key: { get_secret: aws_secret_access_key }
aws_region: { get_input: aws_region_name }
aws_zone: { get_input: aws_zone_name }
admin_user: { get_input: agent_user }
admin_key_public: { get_input: public_key }
Cloudify also utilizes other Cloudify deployment stacks as service components:
infrastructure:
type: cloudify.nodes.Component
properties:
resource_config:
blueprint:
id: my_deployment
blueprint_archive: { get_input: infra_archive }
main_file_name: infra.yaml
deployment:
id: my_deployment
To summarize, there are many DSLs for orchestrating cloud resources. Each has its own focus: Terraform on simplicity and repeatability, CloudFormation on Amazon, ARM on Azure, Ansible on setting up applications and Cloudify on enabling users to automate any task, including automating Cloudify. We call this “orchestrating the orchestrator.”
Red Hat, its online AnsibleFest 2020 conference today, announced an on-premises edition of Ansible Automation Platform dubbed Private Automation Hub and previewed technology to connect the Ansible Automation Platform managed as a cloud service by Red Hat and the on-premises edition.
In addition, Red Hat is making available more pre-integrated workflows to its certified Ansible Content Collections service for Red Hat OpenShift, Kubernetes Core and the VMware vSphere REST application programming interface (API).
Finally, the company previewed integration between Ansible Automation Platform and Red Hat Advanced Cluster Management, a tool originally developed by parent company IBM for managing Kubernetes clusters at scale. As part of that effort, Red Hat will integrate its implementation of Kubernetes Operators tools for deploying applications on the Red Hat OpenShift platform, which is built on top of Kubernetes, with a Resource Operator for Red Hat Advanced Cluster Management that will enable Ansible Automation Platform to execute tasks outside of the Kubernetes cluster when required.
Joe Fitzgerald, vice president of management for Red Hat, said there are now more than 60 Ansible Content Collections available that can be deployed on-premises or in a cloud service managed by Red Hat. The connectors will make it easier for IT teams to access workflow content curated by Red Hat and its partners while continuing to create automated playbooks for their own unique IT environments that are stored locally, he said.
As the number of IT domains to which a declarative IT automation framework can be applied continues to expand, Fitzgerald said the playbooks an IT team can create are becoming more comprehensive. Unlike other IT automation platforms, however, Ansible doesn’t require the IT operations team to learn how to code. In the wake of the COVID-19 pandemic and most employees working from home, the number of workflows that IT teams are trying to automate has increased substantially, he said.
That framework can now also be applied to both legacy IT environments as well as Kubernetes clusters upon which the cloud-native technologies are being deployed. During AnsibleFest, Red Hat will be showing proofs of concept of support for Knative, open source middleware developed by Google that integrates serverless computing frameworks with Kubernetes clusters.
While there are still DevOps teams that have adopted programmable frameworks to manage IT as code, many traditional IT administrators are embracing Ansible as a means to automate increasingly complex IT environments. Rather than acquiring and deploying automation tools for each platform in the IT environment, Ansible provides a common framework through which IT teams can automate the provisioning of servers, virtual machines, clusters, switches, routers and storage systems. With vendors such as Cisco Systems supporting Ansible, the number of workflows capable of spanning multiple IT domains continues to expand as internal IT teams share the playbooks either they created or had crafted for them by an IT services firm.
Regardless of how an internal IT gains access to those playbooks, it’s probable that no matter what the automation requirement is, there is now somewhere a playbook written in Ansible to address it.
David Theobald, principal product manager at Akamai, said developers can now code dynamic content assembly at the edge to create microservices on the Akamai Intelligent Edge platform that include external requests and the ability to manipulate response bodies. That approach provides developers with the primitives required to run edge computing applications on the equivalent of a serverless computing framework, he said.
In addition, Akamai is adding EdgeWorker reporting and debugging tools for JavaScript applications deployed on the edge of its content delivery platform (CDN) and updated its application programming interfaces (APIs) to make it easier and faster to deploy “cloudlet” applications.
Finally, Akamai also has updated its Akamai Image and Video Manager software-as-a-service (SaaS) offering by adding a video status optimization API through which IT teams can track the status of videos as they are being optimized by the Akamai CDN.
While CDNs have been widely employed for decades, they are now evolving into platforms for deploying edge computing applications that are developed and deployed using best DevOps practices. Rather than having to replicate the IT infrastructure already put in place by a CDN provider, many organizations are opting to essentially consume IT infrastructure as a service as they deploy edge computing applications alongside existing web applications.
Competition is already fierce among CDN providers seeking to leverage points of presence around the globe to enable IT teams to deploy applications closer to the point where data is generated and consumed. Many of these edge computing applications are at the core of digital business transformation initiatives that require data to be processed in near real-time. As such, processing that data in a local data center creates too much latency.
Of course, cloud service providers have also extended the range of services they provide to include CDN services. It’s not clear to what degree IT organizations will prefer to leverage those cloud services versus the CDN capabilities many of them already rely on to deploy web applications.
Regardless of the approach, the number of IT teams building, deploying and maintaining their own edge computing infrastructure is likely to be reduced sharply in the wake of the COVID-19 pandemic. IT teams are trying to reduce the potential risk to their IT staff by limiting travel as much as possible, which makes putting IT personnel on a plane to install infrastructure an option of last resort.
Developers, in the meantime, are building more applications faster than ever, thanks mainly to DevOps processes that enable them to work from home. As the deployment backlog for edge computing applications builds, the need to rely more on external services becomes that much more pressing. It may be a while before most DevOps teams routinely view CDNs as just another target platform for deploying applications, but in many cases, that day is already here.