Posts Tagged 'Automate'

April 24, 2015

Working Well With Your Employees

In the past 17 years I’ve worked in a clean-room laboratory environment as an in-house tech support person managing windows machines around dangerous lasers and chemicals, in the telecommunications industry as a systems analyst and software engineer, and in the hosting industry as a lead developer, software architect, and manager of development. In every case, the following guiding principles have served me well, both as an employee striving to learn more and be a better contributor and as a manager striving to be a worthy employer of rising talent. Whether you are a manager or a startup CEO, this advice will help you cultivate success for you and your employees.

Hire up.
When you’re starting out, you will likely wear many hats out of necessity, but as your company grows, these hats need to be given to others. Hire the best talent you can, and rely on their expertise. Don’t be intimidated by intelligence—embrace it and don’t let your ego stand in the way. Also, be aware that faulty assumptions about someone’s skill set can throw off deadlines and cause support issues down the road. Empowering people increases a sense of ownership and pride in one’s work.

Stay curious.
IBM has reinvented itself over and over. It has done this to keep up with the ever-changing industry with the help of curious employees. Curious people ask more questions, dig deeper, and they find creative solutions to current industry needs. Don’t pour cold water on your employees who want to do things differently. Listen to them with an open mind. Change is sometimes required, and it comes through innovation by curious people.

Integrate and automate everything.
Take a cue from SoftLayer: If you find yourself performing a repetitive task, automate and document it. We’ve focused on automation since day one. Not only do we automate server provisioning, but we’ve also automated our development build processes so that we can achieve repeatable success in code releases. Do your best to automate yourself out of a job and encourage others to live by this mantra. Don’t trade efficiency for job security—those who excel in this should be given more responsibility.

Peace of mind is worth a lot.
Once a coworker and I applied to contract for a job internally because our company was about to spend millions farming it out to a third party. We knew we could do it faster and cheaper, but the company went with the third party instead. Losing that contract taught me that companies are willing to pay handsomely for peace of mind. If you can build a team that is that source of that peace of mind for your company, you will go far.

When things don’t go right.
Sometimes things go off the rails, and there’s nothing you can do about it. People make mistakes. Deadlines are missed. Contracts fall through. In these situations, it’s important to focus on where the process went wrong and put changes in place to keep it from happening again. This is more beneficial to your team than finger pointing. If you can learn from your mistakes, you will create an environment that is agile and successful.

- Jason

October 22, 2013

JumpCloud: Tech Partner Spotlight

We invite each of our featured SoftLayer Tech Marketplace Partners to contribute a guest post to the SoftLayer Blog, and this week, we're happy to welcome David Campbell from JumpCloud. JumpCloud is an automated SaaS-based offering that automates the manual, tedious system administration tasks for DevOps and IT pros. It works with your provisioning to complete your operations set by automating server maintenance, management, monitoring, and security.

User Management in a DevOps World

Maybe you're a developer who's recently been given responsibility for managing production infrastructure at your company. Or maybe you're a career SysAdmin whose boss read the DevOps Cookbook and decided that it's time for you to learn to embrace DevOps and start treating your configuration as code and automating everything. DevOps promises to change the way organizations develop, operate and maintain applications and IT infrastructure, both on-premise and in the cloud. However you came upon it, you're now firmly entrenched in the world of DevOps.

No matter what your background, you're probably not alone in terms of needing access to the servers in your environment. Which brings us to the topic of this post. It's bad practice to use a shared "root" account to manage your systems and especially to run your application. So you want to create and manage separate user accounts. This is easy enough to do manually when you have only one or two admins and just a couple of servers. But in today's elastic, auto-scaling environments, you may have two servers at 9am and 1200 servers at 3pm.

So what to do?

In short, what you want is a method by which you can have each admin within your organization have their own user account on all of the systems within your organization to which they should have access. You want to require the admins to use ssh keys to authenticate to the servers, as requiring key based auth will make it impossible for brute force attackers to guess passwords in order to compromise your systems. You likely will want to grant "sudo" access to certain admins, and have them prove their identity to the system before executing privileged commands by entering their password. You may want to require multi factor authentication for admin shell access to especially critical systems, like production database servers.

Access needs to be granted when new admins join your team, and when new servers are brought up in the environment. That's where it gets complicated. Maybe you don't want the junior admin having full access to the customer database system? Access also needs to be removed when somebody inevitably leaves the company, sometimes unexpectedly.

There are a lot of DevOps friendly ways to automate the process of provisioning and deprovisioning user accounts. Techniques can be as simple as using rsync to copy "shadow files" from one system in the environment to all systems in the environment, though this can be tricky to manage in auto-scaling environments.

More advanced approaches involve using configuration management tools like Puppet or Chef to manage local user accounts on managed systems. These tools have native capability for user management, but do not provide any centralized audit trail about who is doing what on your servers. They also make it difficult for the user to select their own initial credentials, or change them down the road should they be forgotten or compromised. Using configuration management tools to manage user accounts also requires "code changes" to add or remove users, and changes can take 30 minutes or more to propagate through your whole environment.

If you want to automate and streamline your server user management process or you're interested in enhancing the security of your infrastructure, visit JumpCloud. We can help make quick work of tedious user management and security issues so that you can get back to growing your business.

-David Campbell, JumpCloud

This guest blog series highlights companies in SoftLayer's Technology Partners Marketplace.
These Partners have built their businesses on the SoftLayer Platform, and we're excited for them to tell their stories. New Partners will be added to the Marketplace each month, so stay tuned for many more come.
Subscribe to automate