Home Blog Page 541

Cloud Foundry Foundation CTO Chip Childers to Host Twitter Q&A

On Thursday, June 1, The Linux Foundation will continue its series of Twitter chats entitled #AskLF featuring leaders at the organization. Previous chats were hosted by The Linux Foundation’s Arpit Joshipura, GM of Networking & Orchestration and Clyde Seepersad, Manager of Training and Certifications. June’s #AskLF host is CTO of Cloud Foundry Foundation, Chip Childers.

#AskLF, was created to broaden access to thought leaders, community organizers, and expertise within The Linux Foundation. While there are many opportunities to interact with staff at Linux Foundation global events, which bring together over 25,000 open source influencers, a live Twitter Q&A will give participants a direct line of communication to designated hosts.

Chip Childers, Cloud Foundry CTO.
Chip Childers is an open source and large-scale computing veteran, having spent 18 years in the field. He co-founded Cloud Foundry Foundation as Technology Chief of Staff in 2015, coming from a VP of Product Strategy role at Cumulogic. Before that, he was the inaugural VP of Apache Cloudstack while leading Enterprise Cloud Services at SunGardChilders led the rebuild of pivotal applications for organizations such as IRS.gov, USMint.gov, and Merrill Lync. 

This “Cloud Foundry 101” #AskLF session will take place in advance of Cloud Foundry Summit Silicon Valley, where Childers will present a talk called A Platform for the Enterprise: Where Maturity & Innovation Intersect. @linuxfoundation followers are encouraged to ask Childers questions related to the Cloud Foundry platform and the foundation’s community

Sample questions might include:

  • What is the Cloud Foundry Foundation Developer Training and Certification Program and how do I get started?

  • Why do developers choose Cloud Foundry over other platforms and competitors?

  • How does The Cloud Foundry Foundation grow its community of contributors? How can I get involved? 

  • What will I get out of attending Cloud Foundry Summit?

Here’s how you can participate in the first #AskLF:

  • Follow @linuxfoundation on Twitter: Hosts will take over The Linux Foundation’s account during the session.

  • Save the date: June 1, 2017 at 10 a.m. PT.

  • Use the hashtag #AskLF: To ask Childers your questions while he hosts, simply tweet it with the hashtag #AskLF on 6/1 between 10 am & 10:45 am PDT. We can’t guarantee that he will have time to answer every inquiry, but every attempt will be made!

  • Consider attending Open Networking Summit in Santa Clara next month: This #AskLF session will prepare you to engage in the topics at Cloud Foundry Summit and you’ll get a chance to hear Childers speak live. Click here for registration and schedule details.

More dates and details for future #AskLF sessions to come! We’ll see you on Twitter, June 1 at 10 a.m. PT.

Read blogs by Chip Childers here: 

https://www.cloudfoundry.org/author/cchilders/​

*Note: Unlike Reddit-style AMAs, #AskLF is not focused around general topics that might pertain to the host’s personal life. To participate, please focus your questions around open source networking and Chip Childers’s career.

Google’s New Home for All Things Open Source Runs Deep

Google is not only one of the biggest contributors to the open source community but also has a strong track record of delivering open source tools and platforms that give birth to robust technology ecosystems. Just witness the momentum that Android and Kubernetes now have. Recently, Google launched a new home for its open source projects, processes, and initiatives. The site runs deep and has several avenues worth investigating. Here is a tour and some highlights worth noting.

Will Norris, a software engineer at Google’s Open Source Programs Office, writes: “One of the tenets of our philosophy towards releasing open source code is that ‘more is better.’ We don’t know which projects will find an audience, so we help teams release code whenever possible. As a result, we have released thousands of projects under open source licenses ranging from larger products like TensorFlow, Go, and Kubernetes to smaller projects such as Light My Piano, Neuroglancer, and Periph.io. Some are fully supported while others are experimental or just for fun. With so many projects spread across 100 GitHub organizations and our self-hosted Git service, it can be difficult to see the scope and scale of our open source footprint.”

Projects. The new directory of open source projects, which is rapidly expanding, is one of the richest parts of the Google Open Source site. If you investigate many of the projects, you can find out how they are used at Google.  A pull-down menu conveniently categorizes the many projects, so that you can investigate, for example, cloud, mobile or artificial intelligence tools. Animated graphics also shuffle between projects that you may not be aware of but might be interested in. Here is an example of one of these graphics:

TensorFlow project.

Do you know about Cloud Network Monitoring Agent, or Minimal Configuration Manager? The Projects section of Google’s site is where you can discover tools like these.

Docs. One of the most compelling components of Google’s new home for all things open source is a section called Docs, which is billed as “our internal documentation for how we do open source at Google.” From open source contributors and developers to companies implementing open source programs, this section of Google’s site has a motherlode of tested and hardened information. There are three primary sections of the docs:

  • Creating covers how Google developers release code that they’ve written, either in the form of a new project or as a patch to an external project.

  • Using explains how Google brings open source code into the company and uses it. It delves into maintaining license compliance, and more.

  • Growing describes some of the programs Google runs inside and outside the company to support open source communities.

According to Norris: “These docs explain the process we follow for releasing new open-source projects, submitting patches to others’ projects, and how we manage the open-source code that we bring into the company and use ourselves. But in addition to the how, it outlines why we do things the way we do, such as why we only use code under certain licenses or why we require contributor license agreements for all patches we receive.”

Blog. The Google Open Source site also includes a tab for the Google Open Source blog, which has steadily remained a good avenue for finding new tools and open source news. The site houses blog posts from people all around Google, and includes collections of links that can take you to other useful blogs, such as the Google Developers Blog and the official Google Blog.

Community. Not only does Google run open outreach programs such as Google Summer of Code and Google Code-in, it also sponsors and contributes projects to organizations like the Apache Software Foundation. The Community section on the Google Open Source site is dedicated to outreach programs and is also a good place to look in on if you want to get involved with Google’s programs. Here are just a few of the community-centric affiliations Google has that you may not know about.

It’s no accident that Google is evolving and improving its home for all things open source. The company’s CEO Sundar Pichai came up at Google as chief of products, and helped drive the success of open source-centric tools ranging from Chrome to Android. Pichai knows that these tools have improved enormously as a result of community involvement. Now, more than ever, Google’s own success is tied to  the success of open source.

Are you interested in how organizations are bootstrapping their own open source programs internally? You can learn more in the Fundamentals of Professional Open Source Management training course from The Linux Foundation. Download a sample chapter now.

Usage Patterns and the Economics of the Public Cloud

Illustrating the huge diversity of topics covered at WWW, following yesterday’s look at recovering mobile user trajectories from aggregate data, today’s choice studies usage variation and pricing models in the public cloud. The basis for the study is data from ‘a major provider’s public cloud datacenters.’ Unless Google or Amazon are sending their data to three researchers from Microsoft, it’s a fair bet we’re looking at Azure.

Research in economics and operations management posits that dynamic pricing is critically important when capacity is fixed (at least in the short run) and fixed costs represent a substantial fraction of total costs.

Read more at The Morning Paper

Puppet IT Automation Wades into Enterprise Containers

Puppet and its enterprise customers are in the same boat, afloat through the early phases of support for Docker containers. Puppet introduced products and updates this week, which include new support for containers to help enterprise customers advance to the new technology.

For sophisticated IT shops where containers are already in use, configuration management can be seen as passé. In such bleeding-edge environments, container infrastructures are immutable — destroyed and recreated continually — rather than updated with tools such as Puppet or Chef.

Read more at TechTarget

AI Toolkits: A Primer

If you’re not an AI specialist, but trying to understand the area, it helps to know the major tools that data scientists use to create AI systems. I thought I would survey the common toolkits, highlight which are the most popular, and explain which ecosystems they connect to.

Machine learning
Contemporary AI workloads divide into two classes. The first of these classes, and the overwhelming majority, is machine learning. These incorporate the most common algorithms used by data scientists: linear models, k-means clustering, decision trees and so on. Though we now talk of them as part of AI, this is what data scientists have been doing for a long time!

Read more at Medium

4 Cool Kubernetes Tools for Mastering Clusters

Kubernetes, the cluster manager for containerized workloads, is a hit. With the Big K doing the heavy lifting in load balancing and job management, you can turn your attention to other matters.

But like nearly every open source project, it’s a work in progress, and almost everyone who works with Kubernetes will find shortcomings, rough spots, and annoyances. Here are four projects that lighten the load that comes with administering a Kubernetes cluster.

Kube-applier

A key part of the Kubernetes success story is its uptake with IT brands other than Google. Cloud storage firm Box has picked up on Kubernetes and open-sourced some of the bits it’s used to aid with its internal deployment; kube-applier is one such project.

Read more at InfoWorld

Bringing Interactive BI to Big Data

SQL on Hadoop is continuously improving, but it’s still common to wait minutes to hours for a query to return. In this post, we will discuss the open source distributed analytics engine Apache Kylin and examine, specifically, how it speeds up big data query orders, and what some of the features in version 2.0—including snowflake schema support and streaming cubing—mean for interactive BI.

What is Apache Kylin?

Kylin is an OLAP engine on Hadoop. As shown in Figure 1, Kylin sits on top of Hadoop and exposes relational data to upper applications via the standard SQL interface.

Read more at O’Reilly

With Version 2.0, Crate.io’s Database Tools Put an Emphasis on IoT

Crate.io, the winner of our Disrupt Europe 2014 Battlefield, is launching version 2.0 of its CrateDB database today. The tool, which is available in both an open source and enterprise version, started out as a general-purpose but highly scalable SQL database. Over time, though, the team found that many of its customers were using the service for managing their machine data and, unsurprisingly, decided to focus its efforts on better supporting those clients.

“The main message is that we hit the nail with the machine data focus that we now have for CrateDB,” Crate co-founder and COO Christian Lutz told me, and added that it was basically the customers who educated the team on what they needed. “We took a look at what they were doing and the database market is so crowded — but we have this mix of SQL and NoSQL,” Lutz said, “and IoT is going to be the fastest growing market for databases.”

Read more at TechCrunch

Designate Provides DNS as a Service in OpenStack

The management of DNS entries works fundamentally differently for clouds than for classic setups; OpenStack Designate is a meaningful and well-functioning DNS as a Service implementation.

DNS is normally one of the first services set up for new infrastructures in the data center; otherwise, it is hardly possible to use the other computers. Many people often only realize how crucial DNS is when it stops working, such as when a website cannot be accessed because the responsible DNS server has crashed. In short: DNS is a fundamental prerequisite for virtually all other services an admin sets up.

The topic of DNS has several dimensions: On the one hand, computers must be able to resolve hostnames to communicate with other computers within and outside the setup. On the other hand, the management of your own DNS entries is done in the appropriate DNS servers: A website that can only be accessed via IP address is rarely desirable; a web address of the expected structure is preferred (e.g., www.example.com ). To that end, a corresponding A record (or AAAA [quad-A] record for IPv6) must be stored for a domain, and a corresponding PTR record (which refers to the A record) must be created in the DNS file for the respective address space.

Read more at ADMIN

A Comparison of Mapping Approaches for Distributed Cloud Applications

One of the most fundamental challenges of monitoring modern cloud applications is the ability to see all the components and their dependencies. The lack of visibility is a critical problem that is worsening as the instance lifespan reduces, components span private and public clouds, and external service dependency increases. As the pace of software development and complexity of application continues to increase, the visibility challenge for operations teams can be summarized as “driving at 100mph with blindfolds!”.

An emerging solution to help with visibility is application maps. In this post, we will describe application maps, their use cases and cover some popular techniques used to generate application maps.

What is an Application Map?

An application map is a topology map comprising of nodes and edges where:

  • The nodes represent groups of processes or compute instances
  • The edges represent the network or IPC interactions between nodes (i.e between groups of compute instances).

There are multiple characteristics that need to be highlighted for application maps:

  1. Grouping of instances is a crucial aspect because otherwise a map at individual server, VM or container level can become overwhelming. Grouping of compute instances serves similar purpose as “resolution” on a Google map. The below map examples from Netflix are good illustrations of the notion of groups and resolution. Figure 1a, is grouping of multiple instances and its “resolution” is low. It is like you zoomed-out on Google map and are seeing the map of a region at state or country level. Figure 1b, is the zoomed-in view which shows specific services.
  2. Application-level details should be present in the application maps rather than merely presenting infrastructure map of hosts, VMs or containers. That is, the user should be able to visualize the services such as databases, DNS, Service Discovery, REST/HTTP endpoints, etc. on the application map.
  3. Golden signals such as latency, error rates, throughput and saturation metrics should be captured and displayed for nodes and edges. These metrics enable operations teams to quickly understand the health and performance of application components.
image9.png?x40029

Figure 1: Application Maps with Nodes Representing Groups of Compute Instances

Application Map Benefits

  • Visibility: Naturally, the biggest value of maps is the ability to see all the components and their dependencies.
  • Incident Response: Application maps can greatly expedite incident response. The dependency chain on a map shows all services participating to fulfill transactions. In the absence of maps, incident response is greatly hampered in trying to first identify all the services involved in a transaction and then often manually correlating metrics to find root cause.
  • Monitoring and Alerting: Using application maps, operations teams can easily identify the services that are on critical path such as those serving end user requests. Operations teams can then define the Service-level Objectives (SLOs) for the critical services and set alerts/paging for them. This can greatly reduce the well known problem of alert fatigue.
  • Capacity Planning and Forecasting: With the knowledge of critical services, operations teams can ensure appropriate capacity allocation for them. Application maps also highlight potential single points of failures and congestion hotspots.
  • Auto-documentation: Application maps provide automated documentation of all components, their dependencies and capture changes over time. Without maps, the information is scattered in configuration manifests, CI/CD systems, and very often inside operators’ heads!
  • Security:  Maps are beneficial for identifying security vulnerabilities in an application. For example, a map can be used to identify if two services that are not supposed to talk to each other are doing so.

Application Mapping Techniques

Application mapping approaches can be categorized into static and dynamic approaches. The static maps are essentially modeling techniques such as CloudCraftYipee.ioSpotify’s System-ZFigures 2 shows an example of static application map generated using CloudCraft.

image11.png?x40029

Figure 2. Static application map created with CloudCraft

In this post we will focus on the dynamic application mapping approach which fall under two categories (1) end-to-end tracing  (2) ingress and egress (individual) tracing.

image12.png?x40029

Figure 3. Application Mapping Techniques : APM, Tracing SDKs and Operating System Level Tracing

 

End-to-end Tracing Techniques:

  • APMs: Application performance management (APM) techniques require code embedded agents on all processes that tracks code execution path. For some languages, agents can get end to end trace by dynamically injecting a trace ID (i.e. custom HTTP headers, Thrift fields, gRPC) to piece together requests and responses across services. AppDynamics, New Relic, and Dynatrace are the popular products in this category that leverage code profiling and transaction tracing to generate maps. Figures 4, shows example of application map generated from AppDynamics. APM techniques are hard to keep up with newer technologies and require an N*M support matrix. For example, for APM techniques to support MySQL tracing, they need to track in all languages. As new programming languages are released, APM techniques need to go and support all the combinations. For example, to release Node.JS APM, vendors need to support all HTTP frameworks, MySQL clients, Postgresql clients and so on. This provides an example of an N*M support matrix for AppDynamics.
image4.png?x40029

Figure 4. Application map generated from AppDynamics

 

  • Tracing SDKs and Proxies: These techniques allow developers to embed tracing SDKs in the application code and use them to track entry points and exit calls. These SDKs don’t look at code execution but instead just eject headers in requests to correlate. Some techniques apply sampling to help scale in production. SDKs emit spans, which contain the unique trace ID and other metadata/tags. Some popular products in this category include OpenTracing, Datadog APM, AWS X-Ray, Finagle, linkerd and Envoy. Figure 5 an example of a application map generated from AWS X-Ray.
image5.jpg?x40029

Figure 5. Application map generated from AWS X-Ray

Pros and Cons of End-to-end Tracing Techniques:

Pros:

  • Help in root cause analysis: Few SDKs help with needle in the haystack (root cause) analysis, e.g. provide rules to record very specific transactions (e.g. for a user). Practically, in production, sampling is enabled in production and heavy recording rules are often avoided unless root cause analysis is being performed.
  • Trace exact path of requests: With tracing techniques, we can track requests as they pass through multiple services, and get the timing and other metadata throughout. This information can then be reassembled to provide a complete picture of the application’s behavior at runtime. Tracing exact path also helps understand request concurrency better and to re-architect the services to make parallel or asynchronous requests, if needed.

Cons:

  • Overheads: Tracing techniques need to store individual traces, which can be challenging in production unless sampling is applied.
  • SDKs or agents needs to be embedded everywhere in the stack in order to get coverage. This can be tricky when calls are made to legacy services or OSS components. Also tricky when different languages are used, e.g. mix and match Node.JS, Java, Python, Go across services.
  • Some techniques use tracing proxies (e.g. linkerd) to inject headers, but application still needs to be aware and has to pass on the context (i.e. headers) when making further calls to other services for the entire glue to work. For more details refer this post.
  • Individual traces don’t add much value as no one has time to go through millions of recordings. All tools ultimately aggregate traces to build a more meaningful cloud application map. In the following section, we describe how aggregation of traces results in exactly the same map as generated by individual tracing techniques.
  • End to end trace is often misleading as it does not capture the load on services (i.e. what other traffic was present) when a trace was recorded. The slow performance on services is often due to traffic load. Hence, aggregating traces is the only way to see something of value.

Ingress and Egress (individual) Tracing:

  • Logs: Some practitioners have built maps using logs gathered from application stacks or proxies. Some technologies such as Apache web server and Nginx proxies can provide detailed logs for each request. Splunk and Elasticsearch have general purpose graph interface to plot all kinds of relationships. However, this technique is very impractical and requires emitting standardized logs on each service request on each service and OSS. Logs also have huge storage overhead.
  • OS Tracing:  Operating systems provide various tracers that allow tracing not just the syscalls or packets, but also any kernel or application software. For example, tcpdump is a network tracer in Linux. Other popular tracers are eBPFDTrace and Sysdig. Figure 6, shows an example of application map generated from Netsil’s Application Operations Center (AOC) using packet capture and service interaction analysis.
image3.png?x40029

Figure 6. Application map generated from Netsil AOC

Pros and Cons of Ingress and Egress (individual) Tracing Techniques:

Pros:

  • Ingress and Egress techniques provide universal coverage as protocols don’t evolve as often as programming languages and frameworks.
  • Ingress and Egress techniques yield exactly the same map as tracing techniques do after aggregating a large number of end to end traces without having to inject and carry forward trace IDs.
  • Ingress and Egress techniques can map anything that talks over the network, even those technologies where trace ID injection is impossible – e.g. DNS calls, MySQL, Postgresql, Cassandra, Memcached, Redis etc.
  • Raw data collection is lighter weight than code embedded APMs (done inside OS kernel). Though there are overheads when the collected data is processed locally (often in user space).
  • New technologies are relatively easy to support (no need for N*M support matrix), making this approach more pervasive and future proof.
  • More accurate and representative of real behavior in production.  Packets are often said to be the ultimate source of truth.

Cons:

  • Ingress and Egress techniques need to deal with reconstruction of application context from network data. Some protocols such as MySQL have complex session state machines.
  • Ingress and Egress techniques don’t work when encryption is employed within the cloud. But this not a problem when SSL termination happens at the load balancer or when using IPSec.
  • Some techniques can have high storage overheads when the reconstructed data is stored in form of events rather than rolled up time series – e.g. PacketBeat.
  • Ingress and Egress techniques can’t tie together related requests and exact fan-out behavior of entry points. Though with modern microservice patterns this is less of a problem as fewer API endpoints exist on services compared to monolithic applications.
  • Hard to track specific business transactions end to end without automatic trace ID correlation. Though possible in some solutions by triggering recording by doing deeper payload analysis using regexes or certain behavior such as a 500 server error.

Conclusion

End-to-end trace map(s) are hard to gather (across languages, teams, large codebases) in real-world apps and the only valuable information they uniquely provide is the exact fan-out pattern of very specific calls. The maps that provide actionable insights and are useful for DevOps workflows are the ones that aggregate (individual and end to end) traces to build a holistic view. The least friction way to collect individual traces is either via logs or OS tracing tools. Netsil has a unique approach that leverages individual service interactions to build the real-time application map. The beauty of Netsil’s approach is that you don’t need any code change or instrumentation. We will describe Netsil maps in more details in the second part of the blog. Meanwhile you can easily get started with Netsil and have complete visibility into your application today. Get started free with Netsil.