环亚ag手机客户端 http:// Technical Solutions for Technical People Fri, 05 Jul 2019 19:35:26 +0000 en-US hourly 1 https://wordpress.org/?v=5.2.2 40163738 环亚ag手机客户端 http:///2019/06/27/managing-and-rotating-api-tokens-with-powershell/ http:///2019/06/27/managing-and-rotating-api-tokens-with-powershell/#comments Thu, 27 Jun 2019 12:05:55 +0000 http:///?p=16228 Pluralsight

Learn how you can start calling RESTful API endpoints using an API Token instead of basic authentication.

Pluralsight

The post Managing and Rotating API Tokens with PowerShell appeared first on Wahl Network.

]]>
Pluralsight

As the usage of RESTful API endpoints continues to increase in the data center and for multi-cloud operations, the need for a secure method for accessing API endpoints increases. One of the less involved steps you can take to authenticate against an API is to use a token. In this post, I’ll go over the architecture of token based requests, how to create and use a token, and provide some thoughts on token rotation. I will be using the Rubrik Cloud Data Management platform’s set of RESTful APIs and token management as part of this post.

ag8829环亚手机客户端

Most RESTful API endpoints will accept two different types of authorization: basic authentication and token authentication. This information is stored in the header of an API request to prove the identity of the user. More specifically, a key name of authorization is paired with a value that contains the appropriate credentials.

For basic authentication, you can read my blog post entitled “Tackling Basic RESTful Authentication with PowerShell” to better understand how the base64 string is encoded in the value. There is a section dedicated to crafting a basic authentication key-value pair.

Token authentication is a much more popular method for handling authorization, especially across public cloud services. Instead of using the credentials of a user, the user is represented by a token. Their permissions, role, and scope is preserved by the token. These are helpful for services that need to programmatically call upon the API and can be invalidated if leaked or no longer needed without adversely affecting the user account.

Rubrik’s API Tokens have additional layers of security applied to them. The following requests are not available to API Tokens:

  • Updating or deleting any MFA (Multi-factor Authentication) servers
  • Creating new sessions or generating additional API tokens
  • Creating new user accounts or updating user account information
  • Updating user preferences
  • Creating, updating, or deleting LDAP services

ag环亚手机客户端

Every vendor will have a different procedure for generating a new API Token. I’ll use Rubrik as my example here to better explain the concepts and show how it works.

The process for manually creating a new API Token is to log into the UI under whatever account you wish to represent with a token.

  • Click on the account name in the upper right corner of the UI and select API Token Manager.
  • From there, a list of all API Tokens that have been generated will appear, but the token value itself is not shown and is only available at the time of generation for security purposes.
  • Click the green “+” button in the upper right corner to start a new token wizard, then fill in the duration (in days) and a tag value (to describe the token) to complete the workflow.
The UI simplifies choices down to duration and tag.

You can also request a token using an automated workflow and the PowerShell SDK for Rubrik thanks to a recent pull request. The command is New-RubrikAPIToken and will generate an API Token that adheres to your expiration and tagging needs.

In the example below, I have requested a new API Token to use with a serverless function running on AWS Lambda in US West 1 (N. California). The PowerShell function is sending a POST request to /api/internal/session using the current session information. I have truncated the resulting values for brevity:

New-RubrikAPIToken -Expiration 600 -Tag 'aws-us-west-1-lambda'

id             : 7cb4b25c
organizationId : Organization:::b6c0d1d1
userId         : 30047f2a
token          : joiN2NiNGIyN
expiration     : 2019-06-26 20:05:28
tag            : aws-us-west-1-lambda

Under the covers, an API request is being sent using my session information to generate a new API Token. The payload of the body is as follows:

Body = {
  "initParams": {
    "apiToken": {
      "tag": "aws-us-west-1-lambda",
      "expiration": 600
    }
  }
}

Note: At this time, the length of a tag cannot exceed 20 characters.

If you’d also like to get a list of different API Tokens that exist, send a GET request to /api/internal/session with a query parameter containing your user ID value. Alternatively, the PowerShell function Get-RubrikAPIToken will retrieve all known tokens based on your current session’s user ID value.

ag环亚国际手机客户端

You have a shiny new API Token. Great! Now what?

The use of a token for authorization changes the header construction slightly. The key remains authorization but the value changes to using the word bearer followed by the token itself. ag环亚国际手机客户端

'Authorization: bearer joiN2NiNGIyN'

If using the Rubrik REST API Explorer click on the green Authorize button on the top right of the page. Scroll down to the API Key Authorization section and enter the word bearer (red line), insert a space, and then paste the API Token (green line). Note that the token below is truncated for brevity. Click Authorize to use the API Token for subsequent requests during your session.

The “basic” value changes to “bearer” when a token is used.

The API Token will remain in place until it reaches the expiration date and time. The token will delete itself and become invalid beyond that point.

It’s also possible to use the token with the PowerShell SDK for Rubrik. Instead of passing along a credential object or manually entering your username and password, use the token parameter as shown below:

Connect-Rubrik -Server 192.168.1.124 -Token joiN2NiNGIyN

Name                           Value
----                           -----
time                           2019-06-26 14:40:06
api                            1
server                         192.168.1.124
header                         {Authorization, User-Agent}
id
userId
version                        5.0.0

You are now able to execute API requests by way of the SDK using the API Token. For example, if I wanted to get information on an SLA Domain:

Get-RubrikSLA -Name 'Gold AWS DND' -PrimaryClusterID 'local'

id                            : e641d876-0955-4e7e-a7f1-a162281fdc74
primaryClusterId              : 8b4fe6f6-cc87-4354-a125-b65e23cf8c90
name                          : Gold AWS DND
--snip--

环亚娱乐ag手机客户端

In the event that you need to remove an API Token prior to its expiration, such as seeing that a colleague accidentally put it in their GitHub repository, it’s important to understand the process.

From a UI perspective, visit the API Token Manager page and select the token that should be removed, then choose “Delete” to remove it. Or, send a POST request to the /api/internal/session/bulk_delete endpoint with an array of token ID values.

Alternatively, use the PowerShell SDK for Rubrik to remove the token. The cmdlet Remove-RubrikAPIToken accepts the token id value as the only parameter, as shown below:

Remove-RubrikAPIToken -TokenId '7cb4b25c'

Confirm
Are you sure you want to perform this action?
Performing the operation "Deletes session tokens" on target "7cb4b25c".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y

Because this is a destructive operation, the cmdlet requires confirmation and be silenced with -Force if you do not want to entertain manual acceptance. You can also pass an array argument that contains multiple token id values if you want to remove more than one a time, which I have found to be handy in testing environments. Here is an example:

Remove-RubrikAPIToken -TokenId ("11111111-2222-3333-4444-555555555555","aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")

ag环亚旗舰手机客户端

While it’s possible to generate a token that lasts for 365 days, this isn’t the ideal use case for a production environment. I prefer to use shorter lived tokens that live in a secure vault and are rotated on a regular basis, such as weekly or monthly. Or issue them to others who need access for a limited period of time, such as power users, contractors, or a project team.

In these situations, my standard operation procedure is to:

  • Use short lived tokens and store them in AWS KMS, HashiCorp Vault, secured variables in AppVeyor and Azure Automation, or even something more consumer like KeePass for certain situations.
  • Make sure your code is referencing a token from these locations. Don’t use a hard coded value that is not easily rotated.
  • Generate a new token prior to the expiration of the old token using the PowerShell SDK for Rubrik, a direct call to the RESTful API (such as Invoke-RestMethod or curl), or any other trigger-based workflow that you prefer that can hit an API endpoint as the user or service account that is represented by the token.

Getting in the habit of using tokens for automation will increase your security awareness, reduce your reliance on user credentials, and aid your transition into a more service-oriented architecture approach.

That’s all I have right now on API Tokens. If you have any questions or comments, feel free to reach out or leave a comment below. And, if you’re keen on learning more about security and encryption in the cloud, check out the “Encrypting Your Data in the Cloud” series written by my sharp colleague Ken Hui.

Pluralsight

The post Managing and Rotating API Tokens with PowerShell appeared first on Wahl Network.

]]>
http:///2019/06/27/managing-and-rotating-api-tokens-with-powershell/feed/ 3 16228
ag8829环亚手机客户端 http:///2019/06/17/tech-girls-are-superheroes/ http:///2019/06/17/tech-girls-are-superheroes/#respond Mon, 17 Jun 2019 12:00:16 +0000 http:///?p=16211 Pluralsight

My experience teaching the Tech Girl Superheroes how to build a ChatBot!

Pluralsight

The post Tech Girls are Superheroes appeared first on Wahl Network.

]]>
Pluralsight

For the past several months, I have been on the road as part of the Rubrik Build road show to deliver hands-on experience around version control, RESTful and GraphQL APIs, programming concepts / languages, and automation. It’s entirely open source and has a set of hands-on labs to accompany each of the educational modules. The goal is to expose individuals to new ideas, technologies, and workflows so that they can see what’s possible and (hopefully) start iterating on their own environments using the new skills they have learned.

During these travels, one of my colleagues brought my attention to a program called Tech Girls are Superheroes. It focuses on STEM (Science, Technology, Engineering, and Math) for girls age 7-17 in Australia and New Zealand. Their vision is to “engage 10,000 girls directly in STEM Entrepreneurship by 2020.”

My team and I definitely wanted to support this vision. We worked with our colleagues to set up a workshop for a group of around 30 girls in the program during our time in Sydney, Australia. The workshop took place on a Saturday (15th June) at the University of Technology Sydney (UTS).

Our idea was to teach the girls about ChatBots and how to build them, including a workshop hosted in AWS where we let them use the Rubrik Technical Marketing lab to generate a version of Roxie, our digital persona, using AWS Lex and Lambda. You can see the open source code for this project here.

In this post, I’ll cover some of the challenges we faced, takeaways from the event, and my thoughts on the experience.

环亚娱乐ag手机客户端

From the moment I saw these young students coming in I was stunned. Every girl came in with a dope looking laptop that had been customized with colors, stickers, keyboard overlays, custom cursors, and more. It was obvious at just a cursory glance that they were into their tech and were expressing their unique personalities through their gear.

Each student found a place at one of the six tables we had set up, introduced themselves to other girls at the tables, and quickly got squared away. We had wrote URLs for the lab instructions and AWS console on the white board; they were already logged in and poking around before any instructions were given.

Introductions to the class were made, my colleagues introduced themselves, and we began to talk about the idea behind a ChatBot. “Has anyone ever worked with a ChatBot before?” we asked – a healthy amount of students raised their hand. “We did that last year” said one group, while others talked about projects they were considering and wanted input on what programming language I liked the most. Apparently one student was an award winner of some sort and nationally ranked.

I have delivered presentations in front of thousands. And yet, this group had me more nervous than I can remember. Such talent!

With the opening introductions and such out of the way, we began the process of walking through the creation of AWS Lambda functions and feeding them into AWS Lex intents. This is when things went a little sideways.

ag环亚游戏手机客户端

I have zero experience with teaching children anything, so I figured something would go awry during the event. Plus, anything that involves a live system with code tends to have hiccups regardless of the audience. In this case, we hit a few snags:

  • Multiple students triggering an AWS Lex build at the same time caused some really weird behaviors and terminated in an error.
  • Because the walk-through screenshots showed only a single intent attached to the bot, students would clear the other intents that other teams were attaching to the bot. This required re-attaching those intents, which wasn’t possible during the terminating errors.

Woops! These were some fascinating conflicts to encounter and taught me a lot about how to deliver a ChatBot course to a large group of students.

ag8829环亚手机客户端

Students were asked to come up with a question that Roxie should answer and then we polled everyone to see what the answer should be! This proved to be really fun and engaging for the girls.

  • What is the color of the sky? Apparently it’s sometimes white and sometimes neon green.
  • What is your favorite place? The answer is, of course, Asgard!
  • Who is the best soccer player? I will admit to having zero idea on this one (I don’t follow sports). However, it generated the most controversy and buzz in the room – the students picked Messi.

We now had a new working bot that could answer fun questions for the room. With each question, a student volunteered to come up to the front of the class and ask their question into the microphone so that Roxie would answer over the speaker system. I was blown away – these are some very brave girls! I never had the guts to do that when I was that young.

ag环亚手机客户端

One of the girls at the workshop wasn’t content with the pivot. During an interview with a university (“uni” in local slang) student who is nearly ready to graduate with a degree centered around gaming / AR / VR design, she plugged back into AWS and go to troubleshooting the original bot.

Working with my colleague, she discovered a few things:

  • Some students had used punctuation in their intents, such as ending a question with a “?”, which causes the intent to fail.
  • There were a number of duplicated intents and functions that contained errors or malformed code. This probably stemmed from copying code that include web page elements instead of the raw code, which is something my team had not considered.

The two of them put their heads together and solved the problem. I was so impressed with the troubleshooting skills – a young mind unraveling the problem and discovering errors and fragments, the experienced mind showing how to connect the dots to the correct places that would result in fixing those same errors.

This is when I realized that I had it all wrong. Anyone can build a ChatBot given the proper instructions. But it takes real skill to tackle bumps in the road.

And that’s the real lesson, isn’t it? It’s not about delivering a working ChatBot and completing the tasks. It’s about learning a new technology and dealing with failures and setbacks, troubleshooting to find a new solution, and then trying new things until you get it right. Giving up would be the failure.

ag环亚手机客户端

As we wrapped up the day, the team wanted to assemble for group photos. At first, I stuck to the side of the room to give the girls room for a photo. And then I saw that the program manager and my colleagues were waving for me to join in the photo. I was kind of shocked and felt like I should not be in the photos.

I’m a white guy in tech. I don’t belong in a photo of these amazing tech girls and their amazing mentors. I felt I would ruin the photos.

They were insistent that I join, so I did. And then photo after photo was taken. Some with all of us. Some were requested by parents (Chris, get in the photo, join us!). I went with it. But I still felt really out of place. Why would they want me in these photos?

I was feeling pretty emotional about it.

Later, my colleague Rebecca came over and we had a chat. I expressed my concern over being in the photos. And you know what she said?

You should absolutely be in these photos. These girls need to see that there are men out there that support them and encourage them to learn about tech. You are doing the right thing.

I will admit that my eyes malfunctioned at that point and I had to find a tissue.

环亚ag手机客户端

I am so lucky to have met these extremely talented young minds and spend a Saturday together. Thank you so much to the Tech Girls are Superheroes program for letting me spend a day with your students. I am a better person for having participated and am hopeful for the future of tech.

Pluralsight

The post Tech Girls are Superheroes appeared first on Wahl Network.

]]>
http:///2019/06/17/tech-girls-are-superheroes/feed/ 0 16211
ag环亚游戏手机客户端 http:///2019/04/30/thinking-about-tech-the-shinkansen-story/ http:///2019/04/30/thinking-about-tech-the-shinkansen-story/#comments Tue, 30 Apr 2019 12:00:37 +0000 http:///?p=16198 Pluralsight

History can teach many lessons about a broad range of topics. In this post, I look at the Shinkansen to gain some insights!

Pluralsight

The post Thinking About Tech: The Shinkansen Story appeared first on Wahl Network.

]]>
Pluralsight

In March of this year, I took my first ride on a Nozomi train on the Tōkaidō line of the Shinkansen, a high-speed railway that connects Tokyo to Osaka. While no stranger to riding on trains, I was really excited to get a ticket on the Shinkansen because it was the first high-speed railway deployed in the world (1964) and still manages to move like silk over hundreds of mile of track.

My safe arrival in Kyoto Station.

Wanting to learn more, I ended up doing some light research on the history of the Shinkansen. The story is pretty interesting! Despite the age of this story, I found parallels to thinking about the challenges in designing and delivering services using cloud and other technologies. It also brought up memories from when I wrote Building Better Infrastructure Automation from Microservices Testing Lessons earlier last year.

In this post, I’ll do my best to highlight the interesting bits of the Shinkansen story while also applying these ideas to the future of technology. If you discover that I’ve made any grievous errors, please do comment below. 🙂

ag环亚旗舰手机客户端

You’d think that a high-speed railway that connects two major cities together would be something to celebrate. However, the Shinkansen railway suffered a lot of negative criticism before it was even built. One individual even described the project as “the height of madness” – perhaps you’ve been in a similar situation when proposing something to your team, boss, or company?

With this project, Shinji Sogō, the president of Japan National Railways (JNR), asked the future chief engineer, Hideo Shima, to oversee the building of the first Shinkansen line in 1955. To be clear, this was the most ambitious rail project of the century. The vision was to move a high volume of passengers between Tokyo and Osaka, not to break any sort of land speed record.

Keep in mind that this is during the dawn of the jet propulsion era where most everyone thought that airplanes and automobiles were going to take over nearly all forms of transportation for passengers. Trains were considered old, clunky, and slow with many railways either remaining stagnant or being shut down entirely.

Shima-san wanted the Shinkansen to be entirely focused on high volumes of passengers gaining access to quick, reliable, and frequent trains. To this end, he made some fairly bold design choices:

  • The railway would be dedicated to high-speed rail for passengers. No slower trains or freight trains would use the railway. (Rail transportation in the United States consists primarily of freight shipments)
  • The tracks would be significantly farther apart to handle a wider stance and improve stability for the high-speed trains, which meant that no other trains could use the railway.

Much like with an IT project, you now have the basis of the design and understand some of the design considerations. In this case, you have two fairly significant constraints (from the perspective of those managing the remainder of JNR trains) or requirements (for the engineers looking to design the new train equipment).

Would you still continue with this project, or opt in for jet planes and hover trains? 🙂

ag环亚游戏手机客户端

The chief architect decided to take the best of proven technologies – in this case, rail systems – and then integrate it with a wide swath of improvements into a singular, seamless system. Here are just some of the engineering tasks that were tackled by him and his team:

  • A dramatic reduction in air resistance from the nose cone and train car design, which also reduces noise at high speeds.
  • The elimination of the locomotive in favor of having DC-powered traction motors placed at each axle. This greatly improved acceleration, distributed the weight, and created new failure domains in case of catastrophic breakdowns.
  • The track segments were made longer and out of higher grade materials, which damped most of the rail vibration.
  • All vehicles were required to go under the train, which eliminated rail crossings. Due to the high speed, a human operator would have no chance of reacting quickly enough at a traditional rail crossing.
  • The deployment of automatic train controls, including seismic monitors that would force the emergency breaks in the event of an earthquake (common in Japan) and central control from the Tokyo station.

I like this approach. Considering the critical success factor is being able to “move a lot of passengers with speedy and frequent service”, it makes sense to start with what you know. Passenger safety was a non-trivial design element, and so the engineering team went to review the existing train models and see what could be improved.

The view isn’t half bad, either!

Very few others were all that thrilled with the direction of this design, however. The project ran over budget – as most all projects do – and spiked into the 380 billion Yen range, which was about double the estimate. In the end, both Shinji Sogō and Hideo Shima resigned before the Shinkansen was even finished.

Sometimes a good idea is just a beyond what others can grok. It takes a tremendous amount of energy to put up a good fight and hold the line on your ideas, and after many years of being told your project is the “height of madness”, I’m sure you’d get frustrated, too.

ag环亚旗舰手机客户端

After nearly 10 years of work, the Shinkansen opened in the Fall of 1964. Passengers remarked that cars on the interstate looked “like they were standing still” in comparison. Inner city air routes were being threatened by a train, which had to cause a few facepalms at the time. At this point, pretty much everyone who thought this was an insane project had to eat a few slices of humble pie.

In three years of service, the Shinkansen had carried more than 100 million passengers. “An executive in Tokyo could get on the train in the morning, hold meetings in Osaka, and then be home in time for dinner.” And there’s the rub – it made life better for the customers, the passengers who just wanted to get from A to B in a reasonable amount of time with minimal frustration.

Doctor Yellow keeps the tracks healthy.

I also found reference to seeing a train called the “Yellow Doctor” and “Doctor Yellow” scouting along the railway to assess the state of the track (and overhead lines) using on-board equipment to monitor and track state. This goes to show that observability is important for all projects, and that diagnostics and metrics are important to gather for overall service health.

ag环亚手机客户端

Sometimes, as much as we technologists love to complicate things and use the latest shiny tools in the tool belt, it’s still critical to focus on the purpose of the design and who is impacted.

  • Align to customer needs and build something that drives a positive outcome.
  • Simplify the solution by removing assumptions and risks. (such as technical debt)
  • Deliver a seamless experience to those looking to consume a service.

And, if you ever have a need to get between any of the cities serviced by the Shinkansen lines, I definitely recommend taking the trip!

Pluralsight

The post Thinking About Tech: The Shinkansen Story appeared first on Wahl Network.

]]>
http:///2019/04/30/thinking-about-tech-the-shinkansen-story/feed/ 1 16198
ag环亚游戏手机客户端 http:///2019/04/11/how-to-write-serverless-powershell-code-for-aws-lambda/ http:///2019/04/11/how-to-write-serverless-powershell-code-for-aws-lambda/#respond Thu, 11 Apr 2019 13:00:52 +0000 http:///?p=16181 Pluralsight

Can you run PowerShell code in AWS Lambda? Sure. Should you? Let's explore that together.

Pluralsight

The post How to Write Serverless PowerShell Code for AWS Lambda appeared first on Wahl Network.

]]>
Pluralsight

Love them or hate them, Serverless functions are a thing and will likely be around for a while. And while I personally enjoy using them to “glue together” various services that I have running on public cloud providers, my preference is to use an existing SDK whenever possible. In this case, I wanted to expand my library of AWS Lambda functions to include code written in PowerShell to better understand how the pipeline works, what sort of cold start times to expect for .NET, and to just generally take advantage of the years of sweat equity poured into the Rubrik PowerShell SDK.

In this post, I’ll walk through the various configuration steps necessary to write some basic functionality and publish a new function using PowerShell in AWS Lambda. The motivation for this was largely driven from lack of finding anything coherent on the topic, which I’m sure has to do with most folks preferring to use Go or Python for Lambda.

ag8829环亚手机客户端

The AWS documentation starts rather strong with the “Setting Up a PowerShell Development Environment” post. In a nutshell, you’ll need to grab:

  1. The PowerShell “Core” code (not Windows PowerShell)
  2. The .NET Core 2.2 SDK (the version linked, 2.1, is out of date as of this post)
  3. The AWSLambdaPSCore module (Install-Module AWSLambdaPSCore)

Are you ready to start? Nope.

环亚娱乐ag手机客户端

I’d also suggest going a bit further by installing the AWSPowerShell.NetCore module (currently 3.3.485.0 as of this post), which they don’t mention in the development environment post. It contains a bazillion cmdlets used for interacting with AWS. The two that you will specifically need are:

  • Set-DefaultAWSRegion to specify your default AWS Region.
  • Set-AWSCredential to specify your AccessKey and SecretKey.

Without arguments for the parameters in these functions, most of the AWS documentation fails when attempting to publish a function and is quite frustrating. A hat tip to Norm Johanson for the announcement post where I found this.

ag8829环亚手机客户端

Most of the remaining documentation is fairly simple to grok. Use the “AWS Lambda Deployment Package in PowerShell” page to follow a few simple steps to generate your first basic template.

I followed along with the example for a bit and realized two things:

  1. $LambdaInput is a neat, hashtable-ish object that is used to pass along the input received by Lambda into your PowerShell function. It’s also noted in the Basic template’s header comments.
  2. For my needs, the Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.335.0'} requirement can safely be removed as it adds around 13 MB of overhead to the function and adds time to the compilation of the zip file (we’ll go over this in a bit).

ag环亚游戏手机客户端

Before continuing with the documented examples, I also wanted to make sure that whenever I packaged up the function it included the Rubrik PowerShell SDK. To do this, just add another #Requires -Modules statement and add your dependencies.

#Requires -Modules Rubrik

The Publish-AWSPowerShellLambda cmdlet will use the #Requires statement(s) to ensure that any dependencies are included in the zip file that you generate next. If you need a specific version of a module, make sure to call that out.

Note: If a matching version of the #Requires module is installed on your workstation, that copy will be used.

ag环亚国际手机客户端

With all this out of the way, it’s time for the big reveal. What does a bit of PowerShell code in Lambda actually look like? Prepare to be underwhelmed.

In this example, I just wanted to be able to pass along a few inputs – the virtual machine name, SLA Domain, and primary cluster identifier – to receive back a little statement about the server’s name, IP address, and cluster. I then toss this over to AWS Lex as a chat bot operation.

#Requires -Modules Rubrik
Connect-Rubrik -Server $env:SERVER -Username $env:USER -Password (ConvertTo-SecureString $env:PASS -AsPlainText -Force) -Verbose
[Array]$List = Get-RubrikVM -Name $LambdaInput.Name -SLA $LambdaInput.SLA -PrimaryClusterID $LambdaInput.PrimaryClusterID -Verbose | Select-Object -Property name,ipAddress,clusterName
return "$($List[0].name) is in the $($List[0].clusterName) cluster at IP $($List[0].ipAddress)"

The code is a bit verbose just to show what’s going on:

  1. Require loading the Rubrik module.
  2. Connect to the Rubrik cluster using environmental variables.
  3. Get a list of any virtual machines matching my information and store it in an array.
  4. Take the first result of the array (hence the $List[0]) and prepare a human-readable statement about it.

ag环亚手机客户端

The last step is to publish your function to AWS Lambda. In the documented example, you’ll use:

Publish-AWSPowerShellLambda -ScriptPath .\MyFirstPSScript.ps1 -Name  MyFirstPSScript -Region us-east-1

For new functions, I would also suggest specifying the role you’d like to use rather than waiting for the IAM Role prompt (shown below) to interrupt you. In my case, I’m using the roxie_lambda service-role since it can control my VPC networking configuration to retrieve information from my Rubrik cluster in California.

Choose wisely. Or just set it up later.

Once invoked, I get a short little blurb about my server.

Hello, server! ?‍♂️

ag环亚游戏手机客户端

As I further hacked away at my PowerShell function, a few other questions rattled around in my noodle. I’ll record each of the thoughts independently below to make it easier to find anything you may be searching for about PowerShell Lambda functions.

ag环亚游戏手机客户端

The “return” from your function is the object passed back as the result. However, actions like -Verbose and Write-Host do get captured in the logs, which is nice. If you are used to writing smaller, lightweight functions that do a limited amount of logic (preferably one logical flow), there isn’t much difference with Lambda.

It’s worth noting that you’ll want to properly format your return into something that Lambda or the upstream trigger is looking for, such as converting a PowerShell hashtable into a JSON object.

ag环亚游戏手机客户端

Environmental variables aren’t really documented anywhere, but work as you would expect. If you define a key / value pair of foo:bar then you can use the standard call of $env:foo to return bar. This is extremely handy for passing along regular or encrypted content into your function.

Let’s use FUN:TIMES and ask Lambda for the results of $env:FUN

Because who doesn’t love fun times?

When $env:FUN is invoked, the return is:

Success!

ag环亚游戏手机客户端

Compared to using Azure Functions with PowerShell or pretty much any other language with AWS Lambda, there isn’t much pleasure in jumping through all these hoops to use PowerShell in AWS Lambda. However, I do enjoy seeing all the places where PowerShell can be leveraged and did find this experience to be educational.

If you have questions or corrections, please let me know.

Pluralsight

The post How to Write Serverless PowerShell Code for AWS Lambda appeared first on Wahl Network.

]]>
http:///2019/04/11/how-to-write-serverless-powershell-code-for-aws-lambda/feed/ 0 16181
环亚ag手机客户端 http:///2019/04/10/hybrid-cloud-shakeup-with-googles-anthos-announcement/ http:///2019/04/10/hybrid-cloud-shakeup-with-googles-anthos-announcement/#respond Wed, 10 Apr 2019 15:19:50 +0000 http:///?p=16173 Pluralsight

A look at public cloud providers who are providing paths for on-premises environments to use their cloudy services.

Pluralsight

The post Hybrid Cloud Shakeup with Google’s Anthos Announcement appeared first on Wahl Network.

]]>
Pluralsight

It’s been interesting to watch the big three public cloud providers select their on-premises dance partners over the past few years. The goal is to construct a platform that can stretch cloud based services into on-premises deployments into what is commonly being referred to as a hybrid cloud model. I fully admit, however, that the term hybrid cloud is nebulous in its definition (pun intended?) based on who you are talking to and what their perspective is focused upon within the stack.

I was recently invited to the annual Google Next 19 event and the invite-only Community Summit to hear more about what Google is doing in the realm of DevOps, SREs, and Hybrid Cloud. I’ll share some thoughts on Google Anthos and other hybrid cloud plays in this post.

One of the well crafted technical sessions at Google Next 19.

ag环亚旗舰手机客户端

The first, Microsoft Azure, decided to tackle the hybrid cloud model with Azure Stack. This appliance “black box” instantiation of limited Azure services that have waterfalled down from the production instances of Azure is a combination of a hyper-converged infrastructure (HCI) stack with Azure services deployed. Administrative access is limited to the layers that live above the platform. We did a show entitled “Unpacking Azure Stack For Hybrid Clouds” on the Datanauts back in 2017 if you want to hear about the creation of this.

Next up is AWS. Their first dabbling into the on-premises world really came about with the introduction of AWS Snowball Edge, which I wrote about here in the post “Extending the Hybrid Cloud with AWS Snowball Edge.” It was the first strong signal for a move towards building hybrid clouds from a company that has traditionally scoffed at any deployments that live in the four walls of your data center. Now, we see that this pivot has completed with last year’s announcement of AWS Outposts which we covered a bit on the “AWS Outposts, Choosing An NVMe Fabric, Parallel NFS Cautions” episode of the Datanauts. This offering is a bit different in its stated architecture, but the end goals seem fairly similar to what Azure Stack is looking to do. Perhaps with a bit stronger of an opinion on how to do hardware? 🙂

ag环亚国际手机客户端

This week, Google has joined the club with the announcement of Anthos, an evolution of Cloud Services Platform, at the Google Next 19 conference in San Francisco. I suggest watching this interview that theCUBE did with Aparna Sinha & Chen Goldberg from Google that covers a bit on Anthos, as well as reading this extremely well pieced together site from Google. Their aim is to target the hot bed of innovation in the form of containerized applications that are tethered together with services meshes on Kubernetes in both cloud and on-premises environments. In fact, the day one keynote even showed an application running in AWS that was being controlled by Anthos, so this isn’t just another “let’s get people on GCP” play.

It was a true pleasure to meet Chen Goldberg in person at Google Next 19.

Considering that adoption of this platform is all about giving you, the user, the choice on how and where you want to run containerized applications, and it supports GKE on-premises, this gets two thumbs up from me. GKE on-premises is all about:

  1. Unified multi-cluster registration and upgrade management
  2. Centralized monitoring and logging with Prometheus and Stackdriver
  3. Hybrid identity and access management
  4. GCP Marketplace for Kubernetes applications
  5. Professional services and enterprise-grade support

I personally plan to dig into this further, especially as it relates to Serverless (one of my favorite technology focus areas at the moment and an inspiration behind Roxie on AWS Lex). Regardless of where you are focused on the greater hybrid cloud stack, it’s definitely interesting days ahead as all public cloud providers are now solving the mysteries of combining on-premises with public cloud in their different ways. Solutions that focus on removing toil and friction while increasing the user experience and overall velocity will end up as the winners.

Pluralsight

The post Hybrid Cloud Shakeup with Google’s Anthos Announcement appeared first on Wahl Network.

]]>
http:///2019/04/10/hybrid-cloud-shakeup-with-googles-anthos-announcement/feed/ 0 16173
ag环亚手机客户端 http:///2019/04/09/modern-data-protection-with-chatops-using-poshbot/ http:///2019/04/09/modern-data-protection-with-chatops-using-poshbot/#respond Tue, 09 Apr 2019 11:00:40 +0000 http:///?p=16156 Pluralsight

If you like the idea of holding a polite conversation with your data protection solution, check this out!

Pluralsight

The post Modern Data Protection with ChatOps – Using PoshBot and Rubrik APIs appeared first on Wahl Network.

]]>
Pluralsight

One theme that I repeatedly drive home on the Datanauts Podcast环亚ag娱乐手机客户端 is the need to collaborate across various silos to deliver a higher quality product and increase your own happiness. One method for doing this is ChatOps – the idea of performing operational tasks in a group setting in a chat environment such as Slack.

A few months back, Brandon Olin, now an SRE over at StackOverflow (congrats again!), pinged me about collaborating on a project for PoshBot, his incredibly popular chat bot constructed from PowerShell. The goal was to combine the PowerShell SDK that my colleagues and I have written for Rubrik into a new module that could plug into PoshBot. Brandon did all of the heavy lifting to kick things off, including the authentication work, because he’s a nice guy.

Today, I’m happy to share the results of this labor and discuss some of the inner workings of a PowerShell fueled chat bot.

ag环亚游戏手机客户端

Let us begin with a look at PoshBot. You can view the code here and the documentation here. In a nutshell, this extremely robust framework is capable of translating just about any written commands in Slack into PowerShell commands sent to any number of plugins. This includes the builtin plugin that handles various help and trout slapping functions.

So many commands, so little time.

The documentation for getting started with PoshBot is fairly in-depth. I even added some more clarity to the Quickstart guide based on my own newbie level experience at the beginning. Some things I really like about PoshBot:

  • It’s open source and created by the community.
  • You can leverage permissions and roles to support RBAC needs.
  • The plugin architecture is simple and intuitive, which reduces the amount of effort required to write new functions.
  • The documentation is well written and comprehensive, including steps needed to generate the Slack token and find Slack’s administrative user information.

ag环亚国际手机客户端

Since PoshBot is just a PowerShell Module, it can be run anywhere that has network connectivity to the Slack APIs (public Internet) and whatever your modules need. For this post, I’m going to run the code on my laptop using a corporate VPN connection back into my lab’s co-location.

I’ve written a Quick Start Guideag环亚国际手机客户端 and placed it in project’s repository on GitHub here. There isn’t all that much to do in order to get the Rubrik module operational beyond these few steps:

  1. Grab the module folder and place it in your $env:PSModulePath of choice. I suggest OneDrive\Documents\PowerShell\Modules if you’re on a modern Windows environment. Or, wherever you wish on MacOS or Linux.
  2. Instruct PoshBot to install the module and load the commands as per the Quick Start Guide.
  3. Edit the PoshBotConfig.psd1 file and add your Rubrik cluster authentication information. I have also opened an Issue on the project to see about adding Token authentication.

That’s it. Once that’s done, you should be able to issue the !help command once more and start seeing new options appear. Example:

Some new Rubrik commands have appeared.

环亚娱乐ag手机客户端

Note that you can either use the long name for a command, such as rubrik_vm for virtual machine information, or the short name for a command, which would be just vm in this example.

By default, commands can be issued to PoshBot using an ! prefix. Thus, rubrik_vm would be sent to Slack’s chat as !rubrik_vm to get PoshBot to respond. You can also use halas a prefix if you’re feeling nostalgic for 2001: A Space Odyssey. 🙂

In my case, I prefer to use Roxie as the personality for my chat bot. To do this, edit the PoshBotConfig.psd1 file and find the AlternateCommandPrefixes variable. It is an array made up of strings. Each one is a prefix that your chat bot will monitor and respond to. Adding Roxie and roxie ensures that either spelling of the name will work.

AlternateCommandPrefixes = @('bender','hal','Roxie','roxie')

Now you can type roxie vm to ask Roxie to retrieve information on virtual machines in the environment. I’ll try that below and provide some more information by way of parameters with arguments to filter down to what I specifically want.

Not bad!

ag环亚国际手机客户端

One of the more common use cases for people who run a Rubrik cluster is wanting to construct a Live Mount. This is a zero-space clone of a virtual machine (or other objects) based on a backup or “snapshot” of that machine. There are two ways you can accomplish this: step-by-step or as a single command.

ag环亚国际手机客户端

Let us start with the individual commands. These are:

  1. Get the VM’s id value.
  2. Look up all of the snapshot id values for that VM.
  3. Generate a Live Mount based on that snapshot id.

Start by gathering the id of the VM:

roxie vm -name 'cwahl-win' -primaryclusterid 'local' -sla 'Bronze GCP DND'

The resulting id value is the globally unique information for a workload. We then ask Roxie for all snapshots known for that object by sending this to the chat:

roxie snapshot -id 'VirtualMachine:::1226ff04-6100-454f-905b-5df817b6981a-vm-78'

Because I did not specify a quantity of snapshots to return, Roxie chose the more recent 3 results. I will create a Live Mount using the most recent id value, which correlates to the most recent backup, with:

roxie mount -create -id '32dbf50e-cdb8-47d4-880b-b5f24c58f39d' -poweron

And that’s it. The Live Mount only takes a few seconds to spin up. Note that you can choose any snapshot regardless of age. I’m just being lazy. 🙂

环亚ag手机客户端

While it is educational to see the steps in action, it’s not fun doing a Live Mount this way. Fortunately, there is another command that skips all the steps: fullmount.

Chat the command roxie help fullmount to get details on the command (or any command) with the required syntax. This command requires three items:

  1. The snapshot to use for the Live Mount in order from newest to oldest. Thus, 0 would be the most recent snapshot, 1 would be the second most recent, 2 would be the third most recent, and so on.
  2. The type of object, such as a vm.
  3. The object id, such as VirtualMachine:::1226ff04-6100-454f-905b-5df817b6981a-vm-78 from the earlier example. This prevents accidentally using a non-unique field, such as the name of a virtual machine (which can be identical across environments or even within the same vCenter).

Let us try this command out to see the difference:

roxie fullmount -id 'VirtualMachine:::1226ff04-6100-454f-905b-5df817b6981a-vm-78' -type 'vm' -snapshot 0

Much easier.

ag环亚手机客户端

This project is 100% open source and part of the Rubrik Build program. If you like what’s here thus far, great! I’m open to any ideas, such as:

  1. Ways to improve the documentation.
  2. New use cases or commands you’d like to see generated.
  3. Code contributions.

Even if you don’t plan on using Rubrik, I think you should definitely take a look at PoshBot and see if there are any groovy plugins that you and your team can take advantage of in your environment. 🙂

Pluralsight

The post Modern Data Protection with ChatOps – Using PoshBot and Rubrik APIs appeared first on Wahl Network.

]]>
http:///2019/04/09/modern-data-protection-with-chatops-using-poshbot/feed/ 0 16156
ag环亚旗舰手机客户端 http:///2019/03/28/github-pull-request-review-using-zapier-to-trigger-alerts/ http:///2019/03/28/github-pull-request-review-using-zapier-to-trigger-alerts/#respond Thu, 28 Mar 2019 15:34:58 +0000 http:///?p=16138 Pluralsight

GitHub Pull Request Review alerting using Zapier, Jira, Slack, and Todoist.

Pluralsight

The post GitHub Pull Request Review – Using Zapier to Trigger Alerts appeared first on Wahl Network.

]]>
Pluralsight

I work on a variety of different open source projects on GitHub. For many of them, I’m assigned to a pull request as either a task worker or peer reviewer. I’m a stickler for maintaining organized lists of prioritized tasks – I want to make sure that any assignments I hold in GitHub are reflected in my task tracking applications: Jira, Slack, and Todoist.

Since I already use Zapier to handle a variety of automation tasks between consumer and business platforms, I figured this would be a good place to start for my needs in GitHub. This post goes into detail on why I track these sorts of things, how the integration is configured, and my experience using the workflows.

环亚娱乐ag手机客户端

Start by heading to Zapier and setting up an account if you don’t already have one. You’ll need to set up your first Connected Account to GitHub. This process is not worth describing in detail – just explore their menu of services and choose GitHub, then follow the prompts. Easy!

Next, go ahead and create a new Zap. Set the Trigger to GitHub and choose the “show less common options” prompt.


From the menu, select “New Review Request” and then save and continue. You can then filter out which repository you wish to monitor, or just leave it blank to monitor everything you have associated with your account.

That’s it for the Trigger portion. The next step is to add an Action to perform. I’ll cover all three options for this in the sections below: Jira Tasks, Slack DMs, and Todoist Tasks.

ag环亚手机客户端

Jira is a software development and project management tool created by Atlassian. It’s a staple of my work at Rubrik to interact with my team, other engineers, product managers, customer success engineers, and so forth. It’s also where all of the back-end work for Rubrik Build takes place. Having any projects within the scope of my work organization – rubrikinc – appear as Jira tasks makes sense to ensure that folks know which PRs I’m working on and what my task load looks like. I can also fold in new assignments into the current or a future sprint, as well as assign a related label or epic (as needed).

Getting Zapier integrated with Jira requires the most amount of effort compared to Slack and Todoist. Especially since my company uses SSO for authentication. Fortunately, Zapier’s Jira integration documentation is spot on. In a nutshell, you will need to:

  • Log into Jira and generate a new API Token. Note that the API Token settings have moved to Security > API Token > Create and manage API tokens.
  • Supply your email address and API Token to Zapier to form the integration with Jira.

环亚ag娱乐手机客户端

Once that’s done, the rest of the workflow is the typical Zap creation process. Continue with the Trigger you made earlier by adding an Action to the Zap and selecting Jira. Pick the “Create Issue” option, then save and continue.

The next area for configuration is the Issue setup itself. Start by picking a Project within Jira. Next, pick an Issue Type and filter by Task. According to Zapier, you may encounter a ton of duplicate Issue types as shown by how many “Task” entries exist in the drop down. Their advise is to go down the list picking different entries until you see the correct fields appear. I found about 12 different “Task” options with the second to last entry being the valid one.

Go ahead and enter what you fields you want to populate for the Task. I keep things fairly simple for myself and just use the Reporter, Summary, and Description.

Now you can give the Zap a test using sample data or by assigning yourself as a PR reviewer and seeing some real data. Jira will generate a new Task on your behalf whenever it finds a new PR review assignment.

ag环亚国际手机客户端

Another avenue for alerting about a new pull request review is Slack. The ability to ping myself or a channel is pretty groovy. Make sure to setup your integration between Zapier and Slack using the awesome documentation, and then create a new Zap using the GitHub section from earlier in this post.

ag环亚手机客户端

For Slack, I just have Slackbot send me a DM as a heads up. To do this, select the Action “Send Direct Message” from your Slack integration. If you’d prefer a channel message, choose that instead.

Once that’s done, format the DM template. As with Jira, I don’t go too crazy with the amount of information I receive since I plan on actually working the review in something like VSCode. The message text contains a link to the Pull Request HTML URL and the User Login.

Easy enough! Now the handy Slackbot pings will let me know when I have a new pull request to review.

环亚ag手机客户端

The final integration I have configured is between Zapier and Todoist. I use Todoist to prioritize and track all work that needs to get done across all aspects of my life – doctor appointments, holidays, events with friends, and now also helping me remember to review a pull request for any community projects that I’m working on. If you’re interested in setting up Zapier for Todoist, check out their documentation.

环亚ag娱乐手机客户端

The setup for Todoist is similar to the others. Setup the Zap using the GitHub integration from before, or limit the repo list to just your community project(s) as desired.

When constructing the Todoist task, I use a “PR Review Needed” along with the PR Title. In the Note field, I add the Pull Request HTML URL and Body fields.

You may also want to set a due date and a label. I just have the due date set to “today” and then modify when it’s due after I’ve read through the PR.

ag8829环亚手机客户端

Having an automated workflow keeping an eyeball on any requests for my attention is a big win for me. I hope these ideas for Zaps will provide some value in your life as well. Cheers! 🙂

Pluralsight

The post GitHub Pull Request Review – Using Zapier to Trigger Alerts appeared first on Wahl Network.

]]>
http:///2019/03/28/github-pull-request-review-using-zapier-to-trigger-alerts/feed/ 0 16138
ag环亚手机客户端 http:///2019/02/25/building-a-bot-with-aws-lex-lambda-and-rubrik/ http:///2019/02/25/building-a-bot-with-aws-lex-lambda-and-rubrik/#respond Mon, 25 Feb 2019 12:00:09 +0000 http:///?p=16126 Pluralsight

Back in 2017, I was published in a tongue-in-cheek post & video that showcased Roxie, an intelligent personal assistant that harnessed AWS Lex, AWS Lambda, and Rubrik’s Cloud Data Management APIs. It was written by Manjunath Chinni – who is a super groovy engineer at Rubrik – as part of our 2017 annual internal company […]

Pluralsight

The post Building a Bot with AWS Lex, Lambda, and Rubrik appeared first on Wahl Network.

]]>
Pluralsight

Back in 2017, I was published in a tongue-in-cheek post & video that showcased Roxie, an intelligent personal assistant that harnessed AWS Lex, AWS Lambda, and Rubrik’s Cloud Data Management APIs. It was written by Manjunath Chinni – who is a super groovy engineer at Rubrik – as part of our 2017 annual internal company hackathon challenge. At the time, AWS Lex was a bit more rudimentary in nature and the options for AWS Lambda were also reduce in scope. I’ve included the teaser video below for fun. 🙂

The buzz about this project was palpable. Lots of folks wanted to get their hands on the code and set up a Roxie of their own. Unfortunately, that never did happen at the time for a myriad of reasons. However, with the launch of Rubrik Build – an open source community to make our APIs as consumable, friendly, and collaborative as possible – Manjunath and I were on a mission to make sure Roxie saw the light of day as an open source project that anyone could check out and tinker with.

ag环亚游戏手机客户端

At a high level, Roxie uses AWS Lambda to query the Rubrik APIs for answers to a handful of common questions. When I ask for the cluster status, for example, a Lambda function fires off a chunk of Python code to see the status of all nodes within the target cluster. If all node values return as “OK” (meaning no issues), then the code returns a happy statement back to me: Your cluster is doing awesome!

A Slack conversation with Roxie

All of this is glued together with AWS Lex, a chat bot service that uses the idea of utterances (what phrases to listen for) and intents (what to do when that phrase is found) to control the workflow between user and code. It really does most of the heavy lifting and can be plugged directly into a phone application or chat application such as Slack.

One of the most interesting things about this project is the lack of setting up any infrastructure. Even the Rubrik APIs could be hosted elsewhere (cloud cluster, Polaris, etc.) instead of an on-premises cluster. The locality doesn’t matter. Once I understood what Manjunath had originally configured, we were able to tackle the setup in a few hours and add a handful of new intents to Lex. You can view all of the code directly in GitHub here.

ag8829环亚手机客户端

If you’re interested in getting your hands dirty with some neat AWS services, Python code, Rubrik’s APIs, or some combination of these items, here is the way forward:

  1. Check out the Getting Started video to see a 6 minute introduction.
  2. Read the Quick Start Guide and follow along in your environment. Send over a pull request if you find anything wrong. 🙂
  3. Profit?

Pluralsight

The post Building a Bot with AWS Lex, Lambda, and Rubrik appeared first on Wahl Network.

]]>
http:///2019/02/25/building-a-bot-with-aws-lex-lambda-and-rubrik/feed/ 0 16126
ag环亚手机客户端 http:///2018/11/27/how-to-successfully-navigate-giving-and-receiving-feedback/ http:///2018/11/27/how-to-successfully-navigate-giving-and-receiving-feedback/#comments Tue, 27 Nov 2018 13:00:42 +0000 http:///?p=16110 Pluralsight

A post for those looking to up-level their skills in providing and receiving quality feedback!

Pluralsight

The post How To Successfully Navigate Giving and Receiving Feedback appeared first on Wahl Network.

]]>
Pluralsight

Chances are good that you’re part of a team or group larger than yourself and that work is being created in a collaborative nature. As work gets done, it’s often wise to ask for feedback to gauge the quality of your work and find others who can spot areas for improvement. However, if you’re anything like me, the typical response is a blanket statement that sounds positive. Something like “it was great!” or “that was the best!” when discussing a project or presentation.

Unfortunately, this feedback is nearly useless and is often used as a polite way to dismiss the request for feedback. For most, the idea of offering improvement too closely overlaps with being negative or criticizing, and thus you never really get any good ideas on how to continue advancing towards a better version of yourself.

Admittedly, I once considered a continuous diet of positive responses to mean that everything was going great. This way of thinking was slowly challenged as I started changing the way I phrased requests for feedback, and also impacted how I approach providing feedback to others. In this post, I’ll offer some perspective on both sides of the feedback equation.

环亚娱乐ag手机客户端

Before I hop up on my soap box, let me first state a somewhat obvious but worthwhile fact: not everyone takes feedback the same way. We’re all at different points of our journey. It’s important to be honest and fair in what is communicated. However, some folks asking for feedback don’t actually want it – they just want the verbal hugs. 🙂

环亚ag娱乐手机客户端

Let’s put aside anonymous and form-based feedback and instead focus on situations in which you want to get feedback from someone whom you know. Start with a bit of navel gazing:

  1. What is it you’re hoping to learn from the feedback?
    • Examples: Technical accuracy, story flow, visual aids, “Explain Like I’m 5” (ELI5)
  2. Does the person you’re asking have the time, skills, and resources available to offer actionable feedback?
    • Examples: Are they traveling or going on PTO? Will they have enough time to hit my deadlines?
  3. Does the person you’re asking know you well enough to be honest and direct?
    • Examples: Is there a fear of retaliation? Have we worked on projects in the past? Do they typically offer direct feedback to others?

I find that answering these first three questions helps clarify my thoughts and determines if I should proceed further, although question 2 may require taking your best guess.

Once I’m ready to proceed further, I try to take all of the burden off the reviewer’s shoulders. Provide all of the necessary context – what you created, what you’re hoping to learn, why you’re asking them, links / attachments to the content, and any known deadlines – to make their life easy. Be clear that you respect their time, want direct and actionable feedback, and consider this a teaching tool to help you.

If you need a rough framework to get started, try framing your request for feedback into three main categories:

  1. What am I doing that I need to stop?
  2. What am I not doing that I should start?
  3. What am I doing now that I should invest into more?

ag8829环亚手机客户端

In most cases, the section above creates a Safety Bubble for the reviewer to share their honest opinions and suggestions. Once you receive the feedback, try to find all of the great ideas being given to you and make them your own.

Not all feedback will be something you agree with, but there should be some interesting ideas planted among the review. If you do decide to act on the feedback, it’s often a good idea to share the results with the reviewer so that they can see their investment yield a return.

ag环亚旗舰手机客户端

Does hearing the phrase “can you give me feedback on my work?” give you chills down your spine? You’re not alone. Most of us avoid conflict and stress when possible because it’s not fun and, scientifically, triggers the release of cortisol. This is why you feel your heart pounding in a “fight or flight” type of response. It can feel like you’re under attack.

However, providing feedback can also be a rush of creativity and fun (triggering a release of dopamine) once you start to get the hang of it.

If this is your first time giving feedback to an individual, it’s often good to ask for clarification:

  1. What type of feedback are you looking for?
  2. When do you need the feedback?

This shows that you’re taking the request seriously and trying to frame the request in your mind. It’s also good to set expectations on how you prefer to give feedback.

Example: Your success is important to me. Thus, I am very direct and honest in my feedback. I’ll do my best to provide a specific and actionable review.

ag环亚旗舰手机客户端

At this point, you know what the person is looking for and when they need it. It’s a good idea to set aside a specific time to perform a review and build feedback. I suggest putting an event on your calendar or loading the action item into your task tracking application.

Time permitting, perform two passes on the content:

  1. ag8829环亚手机客户端
    • Consume the work (watch, read, listen) without worrying about the details.
    • Try to follow the requester’s work to see where it all leads.
    • Upon reaching the end, record your impressions and overall thoughts.
  2. ag环亚游戏手机客户端
    • Consume the work a second time.
    • Take detailed notes on areas that pleasantly surprised you (I hadn’t thought of that!) or disappointed you (This doesn’t make sense).
    • If possible, build some proactive ideas on how to improve the areas that disappointed you.
      • Example: “I noticed that you’re consistently using on-premises incorrectly and saying on-premise. We’re all wired differently. Maybe try just switching to on-site or local instead?”
    • Avoid being negative.

At this point you can send over the feedback (both the good and the bad) for them to review. Accept that some ideas will be used and others will not. Hopefully, the work you’re reviewing will become just a little bit better because of your feedback, and the person you helped with appreciate your focus on their success.

After all, feedback is a gift.

Pluralsight

The post How To Successfully Navigate Giving and Receiving Feedback appeared first on Wahl Network.

]]>
http:///2018/11/27/how-to-successfully-navigate-giving-and-receiving-feedback/feed/ 1 16110
ag环亚手机客户端 http:///2018/08/07/empowering-operations-to-tackle-ransomware-with-rubrik-polaris-radar/ http:///2018/08/07/empowering-operations-to-tackle-ransomware-with-rubrik-polaris-radar/#respond Tue, 07 Aug 2018 16:52:31 +0000 http:///?p=16094 Pluralsight

Harness the power of machine learning to safeguard your data from ransomware with Rubrik's Polaris Radar SaaS application!

Pluralsight

The post Empowering Operations to Tackle Ransomware with Rubrik Polaris Radar appeared first on Wahl Network.

]]>
Pluralsight

Over the past few months, I’ve been working on a website data migration to a new hosting provider. It’s been tough to avoid posting any content but I wanted to shop out a few new homes for my 600+ posts and also do some content scrubbing without the added distraction of trying to merge new data. Hopefully the site will load snappy and peppy for you!

In this post, I wanted to pontificate a bit on ag环亚旗舰手机客户端. Before coming to work for Rubrik in 2015, I don’t think the topic of ransomware was top of mind for most of our technical community. I had heard of various phishing attempts while consulting and dealt with them while working as a virtualization engineer at a big corporate gig. That was about it.

Over time, ransomware designers got more strategic in their efforts by going after the soft underbelly of the data center – backups. Because backups touch everything and many administrators have a mutable (read-write) repository for backup data and/or the catalog database, a ripe target presented itself.

ag环亚游戏手机客户端

Two common strategies have emerged:

  1. Encrypt all of the critical files and applications and cripple the Operations team by deleting backups and related backup software. Demand cryptocurrency payment.
  2. Encrypt all of the critical files and applications knowing that there’s no realistic way for the Operations team to recover from backups due to slow restore times. Demand cryptocurrency payment.

Both of these strategies are dirty, but they work enough of the time to become a viable business model. I’ve literally talked to engineers who were in dismay that their multi-million dollar backup system required days to recover critical applications. That’s a huge bummer, and it’s part of the problem with traditional backup: it focused almost entirely on the ingest speeds and feeds instead of restoring applications and data in a manner that is consumable to the users and offers performance.

The root issue in both strategies is downtime – the killer of any organization. This why a $50,000 USD attack on the folks working for the City of Atlanta “ended up paying about $3.1 million after a ransomware attack, because they had all the incident response, plus insurance claims, privacy monitoring, and contractual hits for missed services.” Of note, the article shares that “defense is not an easy thing.

Agreed. It’s not easy. And I’ve been writing about this particular issue for a while now.

ag环亚旗舰手机客户端

I’m of the opinion that Rubrik’s Cloud Data Management (RCDM) software has done a stellar job at making sure both strategies have a minimal impact for a number of reasons:

  • Backup data is immutable (cannot be changed).
  • The RCDM application is hardened against access.
  • We are fastidious about encryption and certificates.
  • Instant Recovery makes short work of restores.

As Bipul states below, I think we enable folks to deal with the mitigation aspect of recovery with a grace and simplicity that is not typically found in the data center. The next steps on our journey are to empower administrators to also enjoy that same user experience across the detection vector: to know when a breach has occurred and to understand the scope of the damage.

环亚娱乐ag手机客户端

Snazzy headline alert! The amount of mutations seen across ransomware variants is impressive. Rather than digging through the haystack to find a needle, we decided to bring a magnet in the form of Radar, our 2nd data management application hosted on the Rubrik Polaris SaaS platform.

By leveraging machine learning (ML) and feeding it a countless quantity of data points that are generated from backup metadata, we can construct a logical map of your environment to begin trending what “normal” looks like. When the data points begin to showcase an anomalous behavior, Radar can dig deeper to understand the impact while alerting an administrator.

This is all done as a turnkey SaaS application – there’s no need to set up infrastructure and build out the algorithms on your own. Just point your Rubrik clusters towards Polaris and the backup metadata will be securely transmitted and regularly analyzed.

The administrator – plus anyone from the security team – can review the threat analysis and start making decisions. These are the critical moments in which speed matters. Being able to see the impact analysis, most recent unaffected versions of data, and destinations available for recovery is clutch.

When I first saw Radar months ago, I was extremely excited because it gives Operations teams a fighting chance to be proactive in the detection and removal of the evils of ransomware!

Once the threat has been assessed and security measures against further spread are in place, Radar can begin restoring the environment by leveraging Rubrik’s Instant Recovery feature. This can be done anywhere – on-premises using a physical Rubrik Cluster, in the public cloud with Rubrik Cloud Cluster, or even at the edge with Rubrik Edge and Rubrik Air. The code is the same.

ag环亚国际手机客户端

As someone who spent a solid decade as a systems administrator and technical engineer, I know how frustrating and powerless it feels to be attacked by an outside force. My job was to safeguard the applications and data held within my company, and any threat to that was something I took to heart. Being able to turn backup data – which often just sits in a tape silo somewhere – and use it to detect, analize, and recover from ransomware is a huge win in my book!

If you’d like to read more on Polaris Radar, check out this blog post by Arushi Jain, this Technical Overview by Leah Schoeb, or even this take from my NZ friend Ben Kepes entitled Rubrik’s Radar Reveals serious startup scope.

Pluralsight

The post Empowering Operations to Tackle Ransomware with Rubrik Polaris Radar appeared first on Wahl Network.

]]>
http:///2018/08/07/empowering-operations-to-tackle-ransomware-with-rubrik-polaris-radar/feed/ 0 16094